專利名稱::一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于無(wú)線通信網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
,具體來(lái)說(shuō)涉及一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)中的洪泛控制方法。
背景技術(shù):
:多跳無(wú)線自組織網(wǎng)絡(luò)是由多個(gè)移動(dòng)節(jié)點(diǎn)通過(guò)無(wú)線鏈路相連而組成的無(wú)中心、自組織無(wú)線網(wǎng)絡(luò),它不依賴于任何特定的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,能實(shí)現(xiàn)快速自動(dòng)組網(wǎng),可以廣泛應(yīng)用于軍事、搶險(xiǎn)救災(zāi)、商業(yè)應(yīng)用、傳感器網(wǎng)絡(luò)、家庭網(wǎng)絡(luò)等領(lǐng)域。在多跳無(wú)線自組織網(wǎng)絡(luò)中,由于節(jié)點(diǎn)的通信覆蓋范圍有限,相距較遠(yuǎn)的節(jié)點(diǎn)需要通過(guò)其它節(jié)點(diǎn)的中繼(Relay)才能通信,因此,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)不僅能移動(dòng),而且都兼有路由器和主機(jī)兩種功能,能完成發(fā)現(xiàn)和維持到其他節(jié)點(diǎn)的路由,以多跳路由的方式實(shí)現(xiàn)節(jié)點(diǎn)之間的數(shù)據(jù)傳送。多跳路由技術(shù)是實(shí)現(xiàn)無(wú)線自組織網(wǎng)絡(luò)通信的關(guān)鍵技術(shù)。由于無(wú)線自組織網(wǎng)絡(luò)動(dòng)態(tài)變化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、有限的帶寬、不斷變化的鏈路容量和能量受限,使路由協(xié)議必須具有自適應(yīng)的路由維護(hù)能力,才能滿足無(wú)線自組織網(wǎng)絡(luò)的通信需求,因此,設(shè)計(jì)高效的路由協(xié)議是在動(dòng)態(tài)變化的無(wú)線自組織網(wǎng)絡(luò)中面臨的重要挑戰(zhàn)。研究人員在這方面已經(jīng)做了大量的工作,并提出了許多專門應(yīng)用于多跳無(wú)線自組織網(wǎng)絡(luò)的路由協(xié)議,按照發(fā)現(xiàn)路由的策略可以將多跳路由協(xié)議分為兩大類即先應(yīng)式(Proactive)路由協(xié)議和按需(On-demand)路由協(xié)議。先應(yīng)式路由協(xié)議又稱為表驅(qū)動(dòng)路由協(xié)議,無(wú)論是否有通信需求,每?jī)蓚€(gè)節(jié)點(diǎn)之間都預(yù)先建立起路由。每個(gè)節(jié)點(diǎn)都采用周期性的路由分組廣播,交換路由信息,希望最終每個(gè)節(jié)點(diǎn)都維護(hù)一張全網(wǎng)一致的和最新的路由表,源節(jié)點(diǎn)一旦要發(fā)送分組,可以立即獲得指向目的節(jié)點(diǎn)的路由。先應(yīng)式路由協(xié)議有DSDV(Destination-SequencedDistance-VectorRouting)、FSR(FisheyeStateRouting)、UVNMAR(XandmarkadhocRoutingProtocol)、0LSR(OptimizedLinkStateRouting)、TBRPF(TopologyBroadcastbasedonReverse-PathForwarding)等。這種路由協(xié)議的優(yōu)點(diǎn)是能夠及時(shí)交換網(wǎng)絡(luò)信息,如可用帶寬、時(shí)延、拓?fù)浣Y(jié)構(gòu)等,可以支持實(shí)時(shí)業(yè)務(wù)。但是,它不適合規(guī)模較大的網(wǎng)絡(luò),因?yàn)樵S多沒(méi)有使用的路由仍然需要維護(hù),周期性的路由更新可能導(dǎo)致過(guò)度的處理和通信開(kāi)銷。另外,快速變化的拓?fù)浣Y(jié)構(gòu)會(huì)使所獲得的路由有效時(shí)間縮短,路由的利用率下降。按需路由協(xié)議則只有當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)有路由的需求時(shí)才發(fā)起路由的查找過(guò)程,并對(duì)建立的路由進(jìn)行維護(hù),數(shù)據(jù)傳輸結(jié)束后將釋放建立的路由。如A0DV(AdHoconDemandDistanceVector)、DSR(DynamicSourceRouting)、TORA(Temporally-OrderedRoutingAlgorithm)、ABR(Associativity-BasedRouting)等都是按需路由協(xié)議。與先應(yīng)式路由協(xié)議相比,按需路由協(xié)議可以降低路由開(kāi)銷,路由的使用效率更高。一般認(rèn)為,按需路由協(xié)議更適合應(yīng)用于多跳無(wú)線自組織網(wǎng)絡(luò),因而按需路由協(xié)議也成為了研究的重點(diǎn)。針對(duì)路由的維護(hù),先應(yīng)式路由協(xié)議采用節(jié)點(diǎn)之間周期性地交換路由信息,這樣會(huì)帶來(lái)額外的通信開(kāi)銷和能量消耗,影響無(wú)線自組織網(wǎng)絡(luò)的資源利用率。按需路由協(xié)議不要求周期性的路由信息更新,但當(dāng)一條正在使用的路由因?yàn)楣?jié)點(diǎn)失效或節(jié)點(diǎn)移動(dòng)而發(fā)生中斷時(shí),會(huì)觸發(fā)路由的重新發(fā)現(xiàn)過(guò)程,如比較典型的按需路由協(xié)議AODV和DSR,由源節(jié)點(diǎn)采用洪泛機(jī)制在全網(wǎng)廣播路由請(qǐng)求消息。然而,采用洪泛機(jī)制重新建立路由,不僅會(huì)帶來(lái)新的開(kāi)銷,也會(huì)增加業(yè)務(wù)的時(shí)延。因此,在按需路由協(xié)議中如何控制洪泛機(jī)制的范圍、減少洪泛機(jī)制所帶來(lái)的開(kāi)銷并實(shí)現(xiàn)路由的快速恢復(fù)是一個(gè)需要解決的問(wèn)題。
發(fā)明內(nèi)容本發(fā)明的目的在于克服現(xiàn)有技術(shù)存在的上述不足,提供的一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法。該方法首先以按需(On-demand)路由的方式建立起一條基本路由,然后在規(guī)定范圍內(nèi)的節(jié)點(diǎn)之間進(jìn)行信息交互。當(dāng)基本路由出現(xiàn)中斷需要修復(fù)時(shí),盡可能在規(guī)定的范圍內(nèi)進(jìn)行修復(fù),避免在全網(wǎng)范圍內(nèi)采用洪泛機(jī)制,達(dá)到控制路由開(kāi)銷、快速恢復(fù)路由的目的。本發(fā)明所提供的一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,包括基本路由建立過(guò)程、規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程和路由恢復(fù)過(guò)程。所述的按需路由維護(hù)的洪泛控制方法,基本路由建立過(guò)程是指當(dāng)源節(jié)點(diǎn)需要向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),發(fā)起建立一條到達(dá)目的節(jié)點(diǎn)的路由,這條路由稱為基本路由。設(shè)最初所有節(jié)點(diǎn)的類型為初始節(jié)點(diǎn)(Initialnode),其具體步驟包括(1)源節(jié)點(diǎn)向目的節(jié)點(diǎn)廣播發(fā)送路由請(qǐng)求消息RREQ(RouteRequest),RREQ的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、源節(jié)點(diǎn)ID、源節(jié)點(diǎn)序列號(hào)、所經(jīng)過(guò)的節(jié)點(diǎn)序列等;(2)第一次收到RREQ的中間節(jié)點(diǎn)根據(jù)RREQ中的信息,建立到源節(jié)點(diǎn)的路由,并將自己的ID加入到RREQ經(jīng)過(guò)的節(jié)點(diǎn)序列中;如果收到相同的RREQ,將丟棄;(3)如果中間節(jié)點(diǎn)有到達(dá)目的節(jié)點(diǎn)的路由,則通過(guò)該路由傳送RREQ,不再進(jìn)行廣播,否則繼續(xù)廣播該RREQ消息;(4)目的節(jié)點(diǎn)收到RREQ后,比較收到的所有RREQ消息,選取一條最優(yōu)的路由(最優(yōu)的條件可以是跳數(shù)最少、或時(shí)延最小、或能量消耗最小、或穩(wěn)定度最高、或其他可衡量的量化值等)作為基本路由;(5)目的節(jié)點(diǎn)沿最優(yōu)路由的反向路由向源節(jié)點(diǎn)回復(fù)路由應(yīng)答消息RREP(RouteREPly),RREP的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、路由經(jīng)過(guò)的節(jié)點(diǎn)序列等;(6)收到RREP且節(jié)點(diǎn)ID在路由經(jīng)過(guò)的節(jié)點(diǎn)序列的中間節(jié)點(diǎn)建立到目的節(jié)點(diǎn)的基本路由,并設(shè)置自己的類型為基本節(jié)點(diǎn)(Primarynode),然后繼續(xù)轉(zhuǎn)發(fā)RREP;(7)收到RREP的源節(jié)點(diǎn)建立到達(dá)目的節(jié)點(diǎn)的基本路由。所述的按需路由維護(hù)的洪泛控制方法,規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程首先依賴于基本路由建立過(guò)程,在RREP分組的傳遞過(guò)程中,發(fā)送RREP的基本路由節(jié)點(diǎn)的鄰居節(jié)點(diǎn)都會(huì)收到RREP,它們都將建立到達(dá)目的節(jié)點(diǎn)的路由,基本路由的節(jié)點(diǎn)稱為基本節(jié)點(diǎn)(Primarynode)(包括源節(jié)點(diǎn)和目的節(jié)點(diǎn)),其它收到RREP的鄰居節(jié)點(diǎn)稱為備份節(jié)點(diǎn)(Backupnode)。備份節(jié)點(diǎn)向自己的鄰居節(jié)點(diǎn)發(fā)送Hello消息,Hello消息的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、鄰居節(jié)點(diǎn)列表等。本發(fā)明中所述的規(guī)定6節(jié)點(diǎn)就是指基本節(jié)點(diǎn)、備份節(jié)點(diǎn)以及與備份節(jié)點(diǎn)相連的初始節(jié)點(diǎn),規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程的具體步驟包括(1)當(dāng)一個(gè)節(jié)點(diǎn)收到RREP,首先判斷該RREP是否已由自己發(fā)送,如果是由自己發(fā)送,則丟棄該分組;如果不是,則繼續(xù);(2)如果節(jié)點(diǎn)ID包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為基本節(jié)點(diǎn),并建立到目的節(jié)點(diǎn)的基本路由,非源節(jié)點(diǎn)繼續(xù)轉(zhuǎn)發(fā)RREP;(3)如果節(jié)點(diǎn)ID沒(méi)有包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為備份節(jié)點(diǎn),也建立到目的節(jié)點(diǎn)的路由;(4)備份節(jié)點(diǎn)向自己的鄰居節(jié)點(diǎn)廣播Hello消息;(5)收到Hello消息的基本節(jié)點(diǎn)和備份節(jié)點(diǎn)存儲(chǔ)Hello消息中鄰居節(jié)點(diǎn)列表的信息;(6)收到Hello消息的初始節(jié)點(diǎn)除了存儲(chǔ)Hello消息中鄰居節(jié)點(diǎn)列表的信息,還將向發(fā)送Hello消息的備份節(jié)點(diǎn)回復(fù)Hello消息,通告自己的鄰居節(jié)點(diǎn);(7)當(dāng)備份節(jié)點(diǎn)的發(fā)現(xiàn)自己的鄰居節(jié)點(diǎn)信息有更新時(shí),將廣播Hello消息通知鄰居節(jié)點(diǎn)。所述的按需路由維護(hù)的洪泛控制方法,路由恢復(fù)過(guò)程是指當(dāng)基本路由出現(xiàn)失效時(shí),對(duì)基本路由進(jìn)行修復(fù)的過(guò)程。其具體步驟包括(1)當(dāng)一個(gè)基本節(jié)點(diǎn)檢測(cè)到下游節(jié)點(diǎn)失效(節(jié)點(diǎn)移走或節(jié)點(diǎn)能量耗盡)時(shí),查詢自己的鄰居中是否有備份節(jié)點(diǎn),如果有,基本節(jié)點(diǎn)向自己所有的備份節(jié)點(diǎn)發(fā)送路由修復(fù)消息RRES(RouteREStore),其格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、失效節(jié)點(diǎn)ID、經(jīng)過(guò)的節(jié)點(diǎn)序列等;如果基本節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中沒(méi)有備份節(jié)點(diǎn),則向源節(jié)點(diǎn)發(fā)送路由出錯(cuò)消息RERR(RouteError),通知源節(jié)點(diǎn)重新發(fā)起基本路由的建立過(guò)程,RERR的格式包括消息類型、不可達(dá)目的節(jié)點(diǎn)ID、不可達(dá)目的節(jié)點(diǎn)序列號(hào)、不可達(dá)基本節(jié)點(diǎn)列表等。(2)當(dāng)一個(gè)備份節(jié)點(diǎn)收到RRES,操作步驟如下(2.1)判斷收到的RRES是否來(lái)自于下游節(jié)點(diǎn),如果是,則執(zhí)行(2.5);否則,繼續(xù);(2.2)查看自己的鄰居中是否有基本節(jié)點(diǎn)且該基本節(jié)點(diǎn)不是發(fā)送RRES的節(jié)點(diǎn),也不是失效的基本節(jié)點(diǎn),如果有,則將RRES發(fā)送給該基本節(jié)點(diǎn);如果沒(méi)有,則繼續(xù);(2.3)如果自己的鄰居中有備份節(jié)點(diǎn)且該備份節(jié)點(diǎn)是自己的下游節(jié)點(diǎn),則將RRES發(fā)送給所有滿足要求的備份節(jié)點(diǎn);否則,繼續(xù);(2.4)如果自己的鄰居中有初始節(jié)點(diǎn),則將RRES發(fā)送給所有的初始節(jié)點(diǎn);否則,繼續(xù);(2.5)丟棄RRES,向轉(zhuǎn)發(fā)RRES的節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF(REStoreFailure)RESF的格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、接收節(jié)點(diǎn)ID、發(fā)送節(jié)點(diǎn)ID等。(3)當(dāng)一個(gè)基本節(jié)點(diǎn)接收到RRES,如果自己到達(dá)目的節(jié)點(diǎn)的路由仍然有效,則沿RRES的反向路由回復(fù)修復(fù)應(yīng)答消息RESR(REStoreR印ly),RESR的格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、經(jīng)過(guò)的節(jié)點(diǎn)序列等;如果自己沒(méi)有到達(dá)目的節(jié)點(diǎn)的路由,則向轉(zhuǎn)發(fā)RRES的備份節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。(4)當(dāng)一個(gè)初始節(jié)點(diǎn)接收到RRES,如果自己的鄰居中還有其它的備份節(jié)點(diǎn),則將RRES發(fā)送給這些備份節(jié)點(diǎn);否則,向轉(zhuǎn)發(fā)RRES的備份節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。(5)—個(gè)備份節(jié)點(diǎn)或一個(gè)初始節(jié)點(diǎn)轉(zhuǎn)發(fā)收到的第一個(gè)修復(fù)應(yīng)答消息RESR,丟棄以后收到的RESR和RESF;如果一個(gè)備份節(jié)點(diǎn)或一個(gè)初始節(jié)點(diǎn)得到的回復(fù)都是修復(fù)失敗消息RESF,則向給自己轉(zhuǎn)發(fā)RRES的節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。(6)當(dāng)發(fā)送RRES的基本節(jié)點(diǎn)收到一個(gè)修復(fù)應(yīng)答消息RESR,則向發(fā)送該RESR的基本節(jié)點(diǎn)發(fā)送修復(fù)確認(rèn)消息RESC(REStoreConfirm),其格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、經(jīng)過(guò)的節(jié)點(diǎn)序列等。丟棄以后收到的RESR和RESF。(7)接收到RESC的節(jié)點(diǎn)且自己的ID包含在RESC經(jīng)過(guò)的序列中,該節(jié)點(diǎn)成為基本節(jié)點(diǎn)浪收到RESC的節(jié)點(diǎn)但自己的ID不包含在RESC經(jīng)過(guò)的序列中,這樣的節(jié)點(diǎn)成為備份節(jié)點(diǎn)。(8)如果發(fā)送RRES的基本節(jié)點(diǎn)收到的所有回復(fù)消息都為修復(fù)失敗消息RESF,則其向源節(jié)點(diǎn)發(fā)送路由出錯(cuò)消息RERR,通知源節(jié)點(diǎn)重新發(fā)起基本路由的建立。(9)在規(guī)定時(shí)間T(T>0)內(nèi)不活動(dòng)的基本節(jié)點(diǎn)將成為備份節(jié)點(diǎn)或初始節(jié)點(diǎn);在規(guī)定時(shí)間T(TX))內(nèi)不活動(dòng)的備份節(jié)點(diǎn)將成為初始節(jié)點(diǎn);所述的基本節(jié)點(diǎn)不活動(dòng)是指該基本節(jié)點(diǎn)已不屬于基本路由中的節(jié)點(diǎn);所述的備份節(jié)點(diǎn)不活動(dòng)是指該備份節(jié)點(diǎn)已沒(méi)有基本節(jié)點(diǎn)與其相連接。本發(fā)明所提供的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,克服了現(xiàn)有按需路由協(xié)議如A0DV、DSR等在路由維護(hù)時(shí)需要采用全網(wǎng)洪泛廣播路由請(qǐng)求消息而導(dǎo)致大量額外開(kāi)銷的缺點(diǎn),達(dá)到提高路由算法有效性的目的。本發(fā)明將洪泛機(jī)制的使用控制在非常小的范圍內(nèi),這樣不僅可以節(jié)省路由維護(hù)的開(kāi)銷,而且也能讓基本路由得到快速修復(fù),達(dá)到有效提高業(yè)務(wù)的穩(wěn)定性。圖1為本發(fā)明實(shí)施例初始網(wǎng)絡(luò)結(jié)構(gòu)圖。圖2為路由請(qǐng)求消息RREQ格式示意圖。圖3為路由應(yīng)答消息RREP格式示意圖。圖4為實(shí)施例中基本路由建立后的網(wǎng)絡(luò)示意圖。圖5為基本路由建立過(guò)程流程圖。圖6為實(shí)施例中規(guī)定節(jié)點(diǎn)示意圖。圖7為Hello消息格式示意圖。圖8為規(guī)定節(jié)點(diǎn)之間信息交流流程圖。圖9為RRES消息格式示意圖。圖IO為RESR消息格式示意圖。圖11為實(shí)施例中節(jié)點(diǎn)B失效后的網(wǎng)絡(luò)示意圖。圖12為實(shí)施例中節(jié)點(diǎn)C失效后的網(wǎng)絡(luò)示意圖。圖13為RERR消息格式示意圖。圖14為路由恢復(fù)流程圖。具體實(shí)施例方式下面結(jié)合實(shí)施例來(lái)說(shuō)明本發(fā)明所提供的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪8泛控制方法,本實(shí)施例網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,由15個(gè)節(jié)點(diǎn)組成,最初每個(gè)節(jié)點(diǎn)均為初始節(jié)點(diǎn),其中節(jié)點(diǎn)S、R分別為源節(jié)點(diǎn)和目的節(jié)點(diǎn),節(jié)點(diǎn)之間的連線表示存在無(wú)線鏈路,可以直接通信?!⒒韭酚山⑦^(guò)程(1)源節(jié)點(diǎn)S向目的節(jié)點(diǎn)R廣播路由請(qǐng)求消息RREQ,RREQ的格式如圖2所示;(2)第一次收到RREQ的中間節(jié)點(diǎn)如A、B、C等根據(jù)RREQ中的節(jié)點(diǎn)序列信息,建立到S的路由,并將自己的ID加入到RREQ經(jīng)過(guò)的節(jié)點(diǎn)序列中;如果收到相同的RREQ,將丟棄;(3)如果中間節(jié)點(diǎn)有到達(dá)R的路由,則通過(guò)該路由傳送RREQ,不再進(jìn)行廣播,否則繼續(xù)廣播該RREQ;(4)R收到RREQ后,比較收到的所有RREQ消息,選取一條最優(yōu)的路由(本實(shí)施例中最優(yōu)的條件是跳數(shù)最少)作為基本路由,于是得到本實(shí)施例中的最優(yōu)路由,其節(jié)點(diǎn)序列為SABCDER;(5)R沿最優(yōu)路由的反向路由即REDCBAS向S回復(fù)路由應(yīng)答消息RREP,其中包含了路由所經(jīng)過(guò)的節(jié)點(diǎn)序列;RREP的格式如圖3所示;(6)收到RREP且節(jié)點(diǎn)ID在路由經(jīng)過(guò)的節(jié)點(diǎn)序列的中間節(jié)點(diǎn)建立到R的基本路由,并設(shè)置自己的類型為基本節(jié)點(diǎn),然后繼續(xù)轉(zhuǎn)發(fā)RREP;(7)收到RREP的源節(jié)點(diǎn)S建立起到達(dá)R的基本路由SABCDER,如圖4所示。基本路由的建立流程如圖5所示。二、規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程(1)在基本路由建立過(guò)程中,當(dāng)一個(gè)節(jié)點(diǎn)收到RREP,首先判斷該RREP是否已由自己發(fā)送,如果是由自己發(fā)送,則丟棄該分組;如果不是,則繼續(xù);如對(duì)于R發(fā)送的RREP,E會(huì)接收,而對(duì)于D發(fā)送的RREP,E會(huì)丟棄;(2)如果節(jié)點(diǎn)ID如E、D、C、B、A等包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為基本節(jié)點(diǎn),并建立到目的節(jié)點(diǎn)的基本路由,繼續(xù)轉(zhuǎn)發(fā)RREP;(3)如果節(jié)點(diǎn)ID如K、J、H、G、F等沒(méi)有包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為備份節(jié)點(diǎn),也建立到目的節(jié)點(diǎn)R的路由,知道自己有一個(gè)鄰居為基本節(jié)點(diǎn),如K的鄰居E是基本節(jié)點(diǎn);本實(shí)施例中的規(guī)定節(jié)點(diǎn)如圖6所示;(4)備份節(jié)點(diǎn)K、J、H、G、F等向自己的鄰居節(jié)點(diǎn)廣播Hello消息,Hello消息的格式如圖7所示;(5)收到Hello消息的基本節(jié)點(diǎn)E、B、C、B、A以及備份節(jié)點(diǎn)存儲(chǔ)Hello消息中鄰居節(jié)點(diǎn)列表的信息;(6)收到Hello消息的初始節(jié)點(diǎn)I、L、M分別向F、J和K、J回復(fù)Hello消息,F(xiàn)、J、K收到Hello消息后,會(huì)保存Hello消息中鄰居節(jié)點(diǎn)列表的信息;本實(shí)施例中,規(guī)定的節(jié)點(diǎn)能夠獲取的鄰居信息如表1所示,其中括號(hào)內(nèi)數(shù)字表示的是節(jié)點(diǎn)的類型,O表示基本節(jié)點(diǎn),1表示備份節(jié)點(diǎn),2表示初始節(jié)點(diǎn);(7)當(dāng)備份節(jié)點(diǎn)K、J、H、G、F等發(fā)現(xiàn)自己的鄰居節(jié)點(diǎn)信息有更新時(shí),將廣播Hello消息通知鄰居節(jié)點(diǎn)。規(guī)定節(jié)點(diǎn)之間的信息交互流程如圖8所示。表1<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>三、路由恢復(fù)過(guò)程下面結(jié)合實(shí)施例分情況說(shuō)明路由的恢復(fù)過(guò)程第一種情形,當(dāng)基本節(jié)點(diǎn)B失效,A、B之間的鏈路發(fā)生中斷,節(jié)點(diǎn)A會(huì)檢測(cè)到B失效以及基本路由出現(xiàn)中斷。(1)在A的鄰居中有備份節(jié)點(diǎn)F,于是A向F發(fā)送路由修復(fù)消息RRES,RRES的格式如圖9所示;(2)F的鄰居中有一個(gè)位于下游的備份節(jié)點(diǎn)G,于是,F(xiàn)將RRES轉(zhuǎn)發(fā)給G;(3)G收到RRES后,發(fā)現(xiàn)與自己相連的基本節(jié)點(diǎn)B是失效節(jié)點(diǎn),且自己的鄰居中有位于下游的備份節(jié)點(diǎn)H,于是,G將RRES轉(zhuǎn)發(fā)給H;(4)H的鄰居中有一個(gè)基本節(jié)點(diǎn)C且C不是失效節(jié)點(diǎn),所以,H收到RRES后將其轉(zhuǎn)發(fā)給C;(5)C到目的節(jié)點(diǎn)R的路由CDER仍然有效,因此,當(dāng)C收到RRES后,會(huì)沿RRES的反向路由CHGFA向A回復(fù)修復(fù)應(yīng)答消息RESR,RESR的格式如圖10所示;(6)A收到RESR后,沿路由AFGHC向C回復(fù)修復(fù)確認(rèn)消息RESC,其經(jīng)過(guò)的節(jié)點(diǎn)序列即為AFGHC;(7)收到RESC的備份節(jié)點(diǎn)F、G、H,因?yàn)樗鼈兊腎D包含在RESC經(jīng)過(guò)的節(jié)點(diǎn)序列中,所以,F(xiàn)、G、H成為基本節(jié)點(diǎn);1也會(huì)收到RESC,但它的ID不在RESC經(jīng)過(guò)的節(jié)點(diǎn)序列中,所以,I成為備份節(jié)點(diǎn);(8)在本實(shí)施例中取T=15秒,由于與備份節(jié)點(diǎn)J相連的基本節(jié)點(diǎn)B已失效,所以B失效15秒后J將成為初始節(jié)點(diǎn)。本實(shí)施例中節(jié)點(diǎn)B失效后的網(wǎng)絡(luò)如圖11所示。第二種情形,當(dāng)基本節(jié)點(diǎn)C失效,B能檢測(cè)到B、C之間的鏈路失效以及基本路由發(fā)生中斷。(l)B的鄰居中有兩個(gè)備份節(jié)點(diǎn)G和J,于是,B向G和J發(fā)送路由修復(fù)消息RRES;(2)G收到RRES后,將RRES轉(zhuǎn)發(fā)給自己的下游備份節(jié)點(diǎn)H;由于C失效,這時(shí)H只有G—個(gè)鄰居節(jié)點(diǎn),H無(wú)法繼續(xù)修復(fù)過(guò)程,即向G回復(fù)修復(fù)失敗消息RESF;G收到RESF后將其轉(zhuǎn)發(fā)給B,說(shuō)明B發(fā)給G的修復(fù)請(qǐng)求無(wú)法完成路由修復(fù);(3)J收到RRES后,J的鄰居L和M都是初始節(jié)點(diǎn),J將RRES轉(zhuǎn)發(fā)給L和M;(4)M收到RRES后,由于M只有J一個(gè)鄰居,于是M向J回復(fù)修復(fù)失敗消息RESF;這樣J發(fā)給M的修復(fù)請(qǐng)求無(wú)法完成路由修復(fù);(5)L收到RRES后,因?yàn)長(zhǎng)還有一個(gè)鄰居K是備份節(jié)點(diǎn),于是L將RRES轉(zhuǎn)發(fā)給K;K判斷RRES是來(lái)自自己的上游備份節(jié)點(diǎn),于是K將RRES轉(zhuǎn)發(fā)給基本節(jié)點(diǎn)E;(6)E收到RRES后,由于E到目的節(jié)點(diǎn)R路由ER仍然有效,于是沿RRES的反向路由EKLJB回復(fù)修復(fù)應(yīng)答消息RESR;J收到RESR后,丟棄從M收到的RESF;(7)B收到RESR后,沿路由B幾KE向E回復(fù)修復(fù)確認(rèn)消息RESC;節(jié)點(diǎn)J、L、K成為基本節(jié)點(diǎn),M成為備份節(jié)點(diǎn);(8)節(jié)點(diǎn)D由于已不再是基本路由中的節(jié)點(diǎn),但有與之相連的基本節(jié)點(diǎn)E,所以D成為備份節(jié)點(diǎn);節(jié)點(diǎn)H由于與其相連的基本節(jié)點(diǎn)C失效而成為初始節(jié)點(diǎn)。本實(shí)施例中節(jié)點(diǎn)C失效后的網(wǎng)絡(luò)如圖12所示。第三種情形,當(dāng)基本節(jié)點(diǎn)D失效,C會(huì)檢測(cè)到C、D間的鏈路失效以及基本路由發(fā)生中斷。(l)C只有一個(gè)鄰居節(jié)點(diǎn)H為備份節(jié)點(diǎn),于是C向H發(fā)送路由恢復(fù)消息RRES;(2)H收到RRES后,由于自己的鄰居除C之外只有一個(gè)位于自己上游的備份節(jié)點(diǎn)G,于是G向C回復(fù)修復(fù)失敗消息RESF;(3)C收到RESF,意味著C發(fā)出的路由修復(fù)請(qǐng)求無(wú)法實(shí)現(xiàn),于是C沿基本路由CBAS向源節(jié)點(diǎn)S發(fā)送路由出錯(cuò)消息RERR,RERR的格式如圖13所示;(4)S收到RERR后,重新發(fā)起基本路由的建立。路由恢復(fù)的流程如圖14所示。權(quán)利要求一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是包括基本路由建立過(guò)程、規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程和路由恢復(fù)過(guò)程,所述基本路由建立過(guò)程是指當(dāng)源節(jié)點(diǎn)需要向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),源節(jié)點(diǎn)發(fā)起建立一條到達(dá)目的節(jié)點(diǎn)的路由,這條路由稱為基本路由;所述規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程依賴于基本路由建立過(guò)程,在RREP的傳遞過(guò)程中,發(fā)送RREP的基本路由節(jié)點(diǎn)的鄰居節(jié)點(diǎn)都會(huì)收到RREP,且都將建立到達(dá)目的節(jié)點(diǎn)的路由,其中基本路由的節(jié)點(diǎn)稱為基本節(jié)點(diǎn),其它收到RREP的鄰居節(jié)點(diǎn)稱為備份節(jié)點(diǎn),備份節(jié)點(diǎn)向自己的鄰居節(jié)點(diǎn)發(fā)送Hello消息,所述Hello消息的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID和鄰居節(jié)點(diǎn)列表,所述規(guī)定節(jié)點(diǎn)就是指基本節(jié)點(diǎn)、備份節(jié)點(diǎn)以及與備份節(jié)點(diǎn)相連的初始節(jié)點(diǎn),所述RREP的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID和路由經(jīng)過(guò)的節(jié)點(diǎn)序列;所述路由恢復(fù)過(guò)程是指當(dāng)基本路由出現(xiàn)失效時(shí),基本節(jié)點(diǎn)在規(guī)定的范圍內(nèi)對(duì)基本路由進(jìn)行修復(fù)的過(guò)程,所述規(guī)定的范圍是指由所述規(guī)定節(jié)點(diǎn)以及規(guī)定節(jié)點(diǎn)之間的鏈路所組成的網(wǎng)絡(luò)范圍。2.根據(jù)權(quán)利要求1所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述路由恢復(fù)過(guò)程具體包括(1)當(dāng)一個(gè)基本節(jié)點(diǎn)檢測(cè)到下游節(jié)點(diǎn)失效時(shí),查詢自己的鄰居中是否有備份節(jié)點(diǎn),如果有,基本節(jié)點(diǎn)向自己所有的備份節(jié)點(diǎn)發(fā)送路由修復(fù)消息RRES,RRES包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID、失效節(jié)點(diǎn)ID和經(jīng)過(guò)的節(jié)點(diǎn)序列;如果基本節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中沒(méi)有備份節(jié)點(diǎn),則向源節(jié)點(diǎn)發(fā)送路由出錯(cuò)消息RERR,通知源節(jié)點(diǎn)重新發(fā)起基本路由的建立過(guò)程,RERR包括消息類型、不可達(dá)目的節(jié)點(diǎn)ID、不可達(dá)目的節(jié)點(diǎn)序列號(hào)和不可達(dá)基本節(jié)點(diǎn)列表;(2)當(dāng)一個(gè)備份節(jié)點(diǎn)收到RRES,操作步驟如下(2.1)判斷收到的RRES是否來(lái)自于下游節(jié)點(diǎn),如果是,則執(zhí)行(2.5);否則,繼續(xù);(2.2)查看自己的鄰居中是否有基本節(jié)點(diǎn)且該基本節(jié)點(diǎn)不是發(fā)送RRES的節(jié)點(diǎn),也不是失效的基本節(jié)點(diǎn),如果有,則將RRES發(fā)送給該基本節(jié)點(diǎn);如果沒(méi)有,則繼續(xù);(2.3)如果自己的鄰居中有備份節(jié)點(diǎn)且該備份節(jié)點(diǎn)是自己的下游節(jié)點(diǎn),則將RRES發(fā)送給所有滿足要求的備份節(jié)點(diǎn);否則,繼續(xù);(2.4)如果自己的鄰居中有初始節(jié)點(diǎn),則將RRES發(fā)送給所有的初始節(jié)點(diǎn);否則,繼續(xù);(2.5)丟棄RRES,向轉(zhuǎn)發(fā)RRES的節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESFRESF的格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、接收節(jié)點(diǎn)ID和發(fā)送節(jié)點(diǎn)ID。(3)當(dāng)一個(gè)基本節(jié)點(diǎn)接收到RRES,如果自己到達(dá)目的節(jié)點(diǎn)的路由仍然有效,則沿RRES的反向路由回復(fù)修復(fù)應(yīng)答消息RESR,RESR的格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID和經(jīng)過(guò)的節(jié)點(diǎn)序列;如果自己沒(méi)有到達(dá)目的節(jié)點(diǎn)的路由,則向轉(zhuǎn)發(fā)RRES的備份節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。3.根據(jù)權(quán)利要求2所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述路由恢復(fù)過(guò)程還包括當(dāng)一個(gè)初始節(jié)點(diǎn)接收到RRES,如果自己的鄰居中還有其它的備份節(jié)點(diǎn),則將RRES發(fā)送給這些備份節(jié)點(diǎn);否則,向轉(zhuǎn)發(fā)RRES的備份節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。4.根據(jù)權(quán)利要求3所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述路由恢復(fù)過(guò)程還包括一個(gè)備份節(jié)點(diǎn)或一個(gè)初始節(jié)點(diǎn)轉(zhuǎn)發(fā)收到的第一個(gè)修復(fù)應(yīng)答消息RESR,丟棄以后收到的RESR和RESF;如果一個(gè)備份節(jié)點(diǎn)或一個(gè)初始節(jié)點(diǎn)得到的回復(fù)都是修復(fù)失敗消息RESF,則向給自己轉(zhuǎn)發(fā)RRES的節(jié)點(diǎn)回復(fù)修復(fù)失敗消息RESF。5.根據(jù)權(quán)利要求4所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述路由恢復(fù)過(guò)程還包括當(dāng)發(fā)送RRES的基本節(jié)點(diǎn)收到一個(gè)修復(fù)應(yīng)答消息RESR,則向發(fā)送該RESR的基本節(jié)點(diǎn)發(fā)送修復(fù)確認(rèn)消息RESC,丟棄以后收到的RESR和RESF,RESC的格式包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID和經(jīng)過(guò)的節(jié)點(diǎn)序列;接收到RESC的節(jié)點(diǎn)且自己的ID包含在RESC經(jīng)過(guò)的序列中,該節(jié)點(diǎn)成為基本節(jié)點(diǎn);接收到RESC的節(jié)點(diǎn)但自己的ID不包含在RESC經(jīng)過(guò)的序列中,這樣的節(jié)點(diǎn)成為備份節(jié)點(diǎn)。6.根據(jù)權(quán)利要求5所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述路由恢復(fù)過(guò)程還包括如果發(fā)送RRES的基本節(jié)點(diǎn)收到的所有回復(fù)消息都為修復(fù)失敗消息RESF,則其向源節(jié)點(diǎn)發(fā)送路由出錯(cuò)消息RERR,通知源節(jié)點(diǎn)重新發(fā)起基本路由的建立;在規(guī)定時(shí)間內(nèi)不活動(dòng)的基本節(jié)點(diǎn)將成為備份節(jié)點(diǎn)或初始節(jié)點(diǎn);在另一規(guī)定時(shí)間內(nèi)不活動(dòng)的備份節(jié)點(diǎn)將成為初始節(jié)點(diǎn);所述的基本節(jié)點(diǎn)不活動(dòng)是指該基本節(jié)點(diǎn)已不屬于基本路由中的節(jié)點(diǎn);所述的備份節(jié)點(diǎn)不活動(dòng)是指該備份節(jié)點(diǎn)已沒(méi)有基本節(jié)點(diǎn)與其相連接。7.根據(jù)權(quán)利要求26任一項(xiàng)所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述節(jié)點(diǎn)失效包括節(jié)點(diǎn)移走或節(jié)點(diǎn)能量耗盡。8.根據(jù)權(quán)利要求1所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述基本路由建立過(guò)程具體步驟包括(1)源節(jié)點(diǎn)向目的節(jié)點(diǎn)廣播發(fā)送路由請(qǐng)求消息RREQ,RREQ的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、源節(jié)點(diǎn)ID、源節(jié)點(diǎn)序列號(hào)和所經(jīng)過(guò)的節(jié)點(diǎn)序列;(2)第一次收到RREQ的中間節(jié)點(diǎn)根據(jù)RREQ中的信息,建立到源節(jié)點(diǎn)的路由,并將自己的ID加入到RREQ經(jīng)過(guò)的節(jié)點(diǎn)序列中;如果收到相同的RREQ,將丟棄;(3)如果中間節(jié)點(diǎn)有到達(dá)目的節(jié)點(diǎn)的路由,則通過(guò)該路由傳送RREQ,不再進(jìn)行廣播,否則繼續(xù)廣播該RREQ消息;(4)目的節(jié)點(diǎn)收到RREQ后,比較收到的所有RREQ消息,選取一條最優(yōu)的路由作為基本路由;(5)目的節(jié)點(diǎn)沿最優(yōu)路由的反向路由向源節(jié)點(diǎn)回復(fù)路由應(yīng)答消息RREP,RREP的內(nèi)容包括消息類型、目的節(jié)點(diǎn)ID、目的節(jié)點(diǎn)序列號(hào)、發(fā)送節(jié)點(diǎn)ID和路由經(jīng)過(guò)的節(jié)點(diǎn)序列;(6)收到RREP且節(jié)點(diǎn)ID在路由經(jīng)過(guò)的節(jié)點(diǎn)序列的中間節(jié)點(diǎn)建立到目的節(jié)點(diǎn)的基本路由,并設(shè)置自己的類型為基本節(jié)點(diǎn),然后繼續(xù)轉(zhuǎn)發(fā)RREP;(7)收到RREP的源節(jié)點(diǎn)建立到達(dá)目的節(jié)點(diǎn)的基本路由。9.根據(jù)權(quán)利要求8所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述最優(yōu)是跳數(shù)最少、時(shí)延最小或能量消耗最小或穩(wěn)定度最高。10.根據(jù)權(quán)利要求1所述的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,其特征是,所述規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程的具體步驟包括(1)當(dāng)一個(gè)節(jié)點(diǎn)收到RREP,首先判斷該RREP是否已由自己發(fā)送,如果是由自己發(fā)送,則丟棄該分組;如果不是,則繼續(xù);(2)如果節(jié)點(diǎn)ID包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為基本節(jié)點(diǎn),并建立到目的節(jié)點(diǎn)的基本路由,非源節(jié)點(diǎn)繼續(xù)轉(zhuǎn)發(fā)RREP;(3)如果節(jié)點(diǎn)ID沒(méi)有包含在路由所經(jīng)過(guò)的節(jié)點(diǎn)序列中,則設(shè)置自己的類型為備份節(jié)點(diǎn),也建立到目的節(jié)點(diǎn)的路由;(4)備份節(jié)點(diǎn)向自己的鄰居節(jié)點(diǎn)廣播Hello消息;(5)收到Hello消息的基本節(jié)點(diǎn)和備份節(jié)點(diǎn)存儲(chǔ)Hello消息中鄰居節(jié)點(diǎn)列表的信息;(6)收到Hello消息的初始節(jié)點(diǎn)除了存儲(chǔ)Hello消息中鄰居節(jié)點(diǎn)列表的信息,還將向發(fā)送Hello消息的備份節(jié)點(diǎn)回復(fù)Hello消息,通告自己的鄰居節(jié)點(diǎn);(7)當(dāng)備份節(jié)點(diǎn)的發(fā)現(xiàn)自己的鄰居節(jié)點(diǎn)信息有更新時(shí),將廣播Hello消息通知鄰居節(jié)點(diǎn)。全文摘要本發(fā)明公開(kāi)一種多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,該方法包括基本路由建立過(guò)程、規(guī)定節(jié)點(diǎn)之間的信息交互過(guò)程和路由恢復(fù)過(guò)程,首先以按需路由的方式建立起一條基本路由,然后在規(guī)定范圍內(nèi)的節(jié)點(diǎn)之間進(jìn)行信息交互。當(dāng)基本路由出現(xiàn)中斷需要修復(fù)時(shí),盡可能在規(guī)定的范圍內(nèi)進(jìn)行修復(fù),避免在全網(wǎng)范圍內(nèi)采用洪泛機(jī)制,達(dá)到控制路由開(kāi)銷、快速恢復(fù)路由的目的;本發(fā)明所提供的多跳無(wú)線自組織網(wǎng)絡(luò)按需路由維護(hù)的洪泛控制方法,克服了現(xiàn)有按需路由協(xié)議如AODV、DSR等在路由維護(hù)時(shí)需要采用全網(wǎng)洪泛廣播路由請(qǐng)求消息而導(dǎo)致大量額外開(kāi)銷的缺點(diǎn),達(dá)到提高路由算法有效性的目的。文檔編號(hào)H04W40/24GK101707793SQ20091019392公開(kāi)日2010年5月12日申請(qǐng)日期2009年11月13日優(yōu)先權(quán)日2009年11月13日發(fā)明者丁泉龍,劉桂開(kāi),張軍,王洪江,韋崗申請(qǐng)人:華南理工大學(xué)