專利名稱:一種建立路由的方法、裝置及節(jié)點(diǎn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無(wú)線自組網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種建立路由的方法、裝置及節(jié)點(diǎn)。
背景技術(shù):
無(wú)線自組網(wǎng)(Ad Hoc)是一種能夠臨時(shí)快速自動(dòng)組網(wǎng)的移動(dòng)網(wǎng)絡(luò),可以不依賴于任何預(yù)設(shè)的網(wǎng)絡(luò)設(shè)施。在Ad Hoc網(wǎng)絡(luò)中,節(jié)點(diǎn)具有報(bào)文轉(zhuǎn)發(fā)能力,節(jié)點(diǎn)間的通信可能要經(jīng)過(guò)多個(gè)中間節(jié)點(diǎn)的轉(zhuǎn)發(fā),即經(jīng)過(guò)多跳(Multi Hop),這是Ad Hoc網(wǎng)絡(luò)與其他移動(dòng)網(wǎng)絡(luò)的根本區(qū)別。節(jié)點(diǎn)通過(guò)分層的網(wǎng)絡(luò)協(xié)議和分布式算法相互協(xié)調(diào),實(shí)現(xiàn)了網(wǎng)絡(luò)的自動(dòng)組織和運(yùn)行。實(shí)現(xiàn)Ad Hoc自組網(wǎng)的一項(xiàng)關(guān)鍵技術(shù)就是路由協(xié)議。目前Ad Hoc網(wǎng)絡(luò)中按需生成路由方式的典型協(xié)議是AODV(Ad Hoc On-Demand Distance Vector Routing,無(wú)線自組網(wǎng)按需平面距離矢量路由)協(xié)議,它是應(yīng)用于無(wú)線網(wǎng)狀網(wǎng)絡(luò)(也稱作無(wú)線mesh網(wǎng)絡(luò))中進(jìn)行路由選擇的路由協(xié)議,能夠?qū)崿F(xiàn)單播和多播路由。Ad Hoc網(wǎng)絡(luò)中,源節(jié)點(diǎn)及目的節(jié)點(diǎn)為鄰居關(guān)系或非鄰居關(guān)系,只有鄰居關(guān)系的節(jié)點(diǎn)才能直接通信,非鄰居關(guān)系的節(jié)點(diǎn)需要經(jīng)過(guò)其他節(jié)點(diǎn)的轉(zhuǎn)發(fā)才能實(shí)現(xiàn)通信,這也是建立路由的目的。在Ad Hoc網(wǎng)絡(luò)中,采用AODV協(xié)議為源節(jié)點(diǎn)及目的節(jié)點(diǎn)之間建立路由的過(guò)程主要涉及對(duì)以下四種消息的處理=Hello消息(Hello Message,路由廣播消息)、RREQ消息 (Route Request Message,路由請(qǐng)求消息)、RREP 消息(Route Reply Message,路由響應(yīng)消息)和RERR消息(Route Error Message,路由出錯(cuò)消息)。處于非鄰居關(guān)系的節(jié)點(diǎn)之間的路由關(guān)系包括目的節(jié)點(diǎn)到源節(jié)點(diǎn)之間的反向路由、源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間的正向路由,二者分別通過(guò)RREQ消息和RREP消息實(shí)現(xiàn)。1、HeIlo 消息Hello消息是AODV協(xié)議中周期性的廣播消息,主要是用來(lái)偵測(cè)具有鄰居關(guān)系的節(jié)點(diǎn)的狀態(tài)。2、RREQ 消息RREQ消息為按需發(fā)送的廣播消息,也就是源節(jié)點(diǎn)在需要與目的節(jié)點(diǎn)之間進(jìn)行通信時(shí)才廣播的消息,通過(guò)RREQ消息可以建立從目的節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路由。源節(jié)點(diǎn)廣播 RREQ消息(其中攜帶了目的節(jié)點(diǎn)的IP地址等信息),由于只有鄰居關(guān)系之間的節(jié)點(diǎn)才能直接通信,所以源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)(當(dāng)前節(jié)點(diǎn))在收到RREQ消息后會(huì)將其再?gòu)V播出去,直到到達(dá)目的節(jié)點(diǎn)。在這個(gè)處理過(guò)程中,當(dāng)前節(jié)點(diǎn)可能會(huì)多次接收到由同一源節(jié)點(diǎn)發(fā)往同一目的節(jié)點(diǎn)的RREQ消息(這些多次接收的RREQ消息傳輸?shù)穆窂讲煌刹煌泥従庸?jié)點(diǎn)廣播而來(lái)), 但是當(dāng)前節(jié)點(diǎn)確定再次收到了由同一源節(jié)點(diǎn)發(fā)往同一目的節(jié)點(diǎn)的RREQ消息時(shí)會(huì)立即結(jié)束處理,這樣新的路由路徑就被否決,不會(huì)再繼續(xù)去尋找。即每個(gè)當(dāng)前節(jié)點(diǎn)只會(huì)去響應(yīng)最先到達(dá)的RREQ消息,即使后到達(dá)的RREQ消息對(duì)應(yīng)的鄰居節(jié)點(diǎn)可能擁有更好的路徑也不會(huì)再去處理。3、RREP 消息
RREP消息是目的節(jié)點(diǎn)在收到RREQ消息后向源節(jié)點(diǎn)返回的應(yīng)答消息,通過(guò)RREP消息可以建立從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由。RREP消息是單播消息,它會(huì)按照已經(jīng)建立的反向路由返回。由于RREP消息是按照目的節(jié)點(diǎn)與源節(jié)點(diǎn)之間的反向路由單播發(fā)送的,所以當(dāng)前節(jié)點(diǎn)只會(huì)接收到一次該RREP消息,不需要再進(jìn)行路徑的選擇,直接使用反向路由的路徑建立正向路由,這樣正向路由就會(huì)與反向路由擁有同樣的路徑。這種情況下正向路由就會(huì)與反向路由一樣,所擁有的路徑可能不是最好的。4、RERR 消息RERR消息是用于維護(hù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間已建立的路由。由以上描述可知,目前在使用AODV協(xié)議建立路由的過(guò)程中,路由路徑的選擇完全取決于各節(jié)點(diǎn)之間的響應(yīng)速度,它會(huì)選擇響應(yīng)速度最快的節(jié)點(diǎn)作為路由的結(jié)果,其它響應(yīng)速度較慢的節(jié)點(diǎn)將會(huì)被丟棄。這種依據(jù)響應(yīng)速度建立路由的方法可以保證路徑經(jīng)過(guò)的跳數(shù)最少,但是不能保證該路徑的網(wǎng)絡(luò)質(zhì)量最高,從而會(huì)出現(xiàn)無(wú)線節(jié)點(diǎn)之間的通信速度慢、穩(wěn)定性不高的現(xiàn)象。
發(fā)明內(nèi)容
本發(fā)明提供一種建立路由的方法、裝置及節(jié)點(diǎn),用以解決目前的AODV協(xié)議在依據(jù)響應(yīng)速度選擇路由路徑的方法時(shí)不能夠保證最終所建立的路由具有較好的網(wǎng)絡(luò)質(zhì)量的問(wèn)題。本發(fā)明包括一種建立路由的方法,包括當(dāng)前節(jié)點(diǎn)接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;當(dāng)前節(jié)點(diǎn)確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用首次接收的所述 RREQ消息所經(jīng)路徑建立的。一種建立路由的裝置,包含于當(dāng)前節(jié)點(diǎn)中,所述裝置包括RREQ接收模塊,用于接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;第一獲取模塊,用于獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;反向路由更新模塊,用于確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用當(dāng)前節(jié)點(diǎn)首次接收的所述RREQ消息所經(jīng)路徑建立的。一種用于無(wú)線自組網(wǎng)的節(jié)點(diǎn),包括以上所述的一種建立路由的裝置。本發(fā)明提供的一種建立路由的方法、裝置及節(jié)點(diǎn),在當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間建立反向路由時(shí),加入了對(duì)路徑網(wǎng)絡(luò)質(zhì)量的判斷,通過(guò)計(jì)算每次接收的RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量,選擇擁有更好網(wǎng)絡(luò)質(zhì)量的路徑對(duì)已經(jīng)建立的反向路由進(jìn)行更新,從而可以為源節(jié)點(diǎn)及目的節(jié)點(diǎn)之間的通信建立具有較好網(wǎng)絡(luò)質(zhì)量的反向路由, 獲得較高的通信速度及較佳的網(wǎng)絡(luò)穩(wěn)定性。
圖1為本發(fā)明提供的實(shí)施例中建立路由的方法的流程示意圖;圖2為本發(fā)明提供的實(shí)施例中當(dāng)前節(jié)點(diǎn)建立到源節(jié)點(diǎn)的反向路由的流程示意圖;圖3為本發(fā)明提供的實(shí)施例中當(dāng)前節(jié)點(diǎn)獲取與鄰居節(jié)點(diǎn)間信噪比的流程示意圖;圖4為本發(fā)明提供的實(shí)施例中當(dāng)前節(jié)點(diǎn)計(jì)算RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量的示意圖;圖5為本發(fā)明提供的實(shí)施例中當(dāng)前節(jié)點(diǎn)建立到目的節(jié)點(diǎn)的正向路由的流程示意圖;圖6為本發(fā)明實(shí)施例提供的建立路由裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明的一種建立路由的方法及裝置的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。本發(fā)明提供一種建立路由的方法,用于在無(wú)線自組網(wǎng)中建立路由的過(guò)程,如圖1 所示,該方法包括步驟101,當(dāng)前節(jié)點(diǎn)接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;步驟102,當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;步驟103,當(dāng)前節(jié)點(diǎn)確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用首次接收的所述RREQ消息所經(jīng)路徑建立的。本發(fā)明方案在當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間建立反向路由時(shí),加入了對(duì)路徑網(wǎng)絡(luò)質(zhì)量的判斷,通過(guò)計(jì)算每次接收的RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量,選擇擁有更好網(wǎng)絡(luò)質(zhì)量的路徑對(duì)已有的反向路由進(jìn)行更新(所述已有的反向路由為當(dāng)前節(jié)點(diǎn)在本次接收所述RREQ消息之前,首次建立的或最近更新的到源節(jié)點(diǎn)的反向路由),從而可以為源節(jié)點(diǎn)及目的節(jié)點(diǎn)之間的通信建立具有較好網(wǎng)絡(luò)質(zhì)量的反向路由,獲得較高的通信速度及較佳的網(wǎng)絡(luò)穩(wěn)定性。優(yōu)選的,所述建立路由的方法,進(jìn)一步包括若當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則按照所述首次建立的或更新的反向路由返回路由響應(yīng)RREP消息;若當(dāng)前節(jié)點(diǎn)為非目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則廣播所述RREQ消息。上述方法中,僅在當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間建立反向路由的過(guò)程中加入了判斷路徑網(wǎng)絡(luò)質(zhì)量的機(jī)制,而對(duì)當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)之間建立正向路由的過(guò)程沒(méi)有限制,可以使用現(xiàn)有技術(shù)中建立正向路由的機(jī)制,或者,在建立正向路由的過(guò)程中也引入對(duì)路徑網(wǎng)絡(luò)質(zhì)量的判斷。為了在建立正向路由時(shí)也能從各種可能的路徑中選擇到網(wǎng)絡(luò)質(zhì)量好的路徑,優(yōu)選的,本發(fā)明方法還可以包括當(dāng)前節(jié)點(diǎn)接收由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息;當(dāng)前節(jié)點(diǎn)獲取所述 RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量;當(dāng)前節(jié)點(diǎn)確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述目的節(jié)點(diǎn)的正向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第二路徑的相反方向路徑更新所述正向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述目的節(jié)點(diǎn)的正向路由,是利用首次接收的所述RREP消息所經(jīng)路徑建立的。上述方法中,所述已有的正向路由為當(dāng)前節(jié)點(diǎn)在本次接收所述RREP消息之前,首次建立的或最近更新的當(dāng)前節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由。消息在傳遞過(guò)程中所經(jīng)歷的整個(gè)路徑的網(wǎng)絡(luò)質(zhì)量是由路徑中所有節(jié)點(diǎn)之間最低的網(wǎng)絡(luò)質(zhì)量決定的,優(yōu)選的,RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量為對(duì)應(yīng)路徑中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量中的最差網(wǎng)絡(luò)質(zhì)量;RREP消息從目的節(jié)點(diǎn)發(fā)出傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量為對(duì)應(yīng)路徑中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量中的最差網(wǎng)絡(luò)質(zhì)量。在Ad Hoc網(wǎng)絡(luò)中只有鄰居節(jié)點(diǎn)間才能直接通信,所以RREQ消息由傳輸路徑中的反向前一節(jié)點(diǎn)(反向前一節(jié)點(diǎn)為所述RREQ消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn),與當(dāng)前節(jié)點(diǎn)為鄰居關(guān)系)發(fā)送到當(dāng)前節(jié)點(diǎn)時(shí),當(dāng)前節(jié)點(diǎn)只能直接計(jì)算出自身與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量。優(yōu)選的,源節(jié)點(diǎn)之后的第二個(gè)接收到RREQ消息的節(jié)點(diǎn)確定自身為非目的節(jié)點(diǎn)時(shí),在所廣播的RREQ消息中包含自身與源節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量,這樣第三個(gè)獲取到所述 RREQ消息的節(jié)點(diǎn),就可以在計(jì)算出自身與所述第二個(gè)接收到RREQ消息節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量后,確定出所述RREQ消息從源節(jié)點(diǎn)傳輸至自身時(shí)所經(jīng)路徑中的最差網(wǎng)絡(luò)質(zhì)量(該最差網(wǎng)絡(luò)質(zhì)量即所述RREQ消息從源節(jié)點(diǎn)傳輸至自身時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量),并將該最差網(wǎng)絡(luò)質(zhì)量記錄于所述RREQ消息中再?gòu)V播出去,依次類推,第四個(gè)及以后接收到所述RREQ消息的節(jié)點(diǎn)就可以從當(dāng)前接收到的RREQ消息中獲得所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1。優(yōu)選的,當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量,具體為當(dāng)前節(jié)點(diǎn)獲取與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,所述反向前一節(jié)點(diǎn)為所述RREQ消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1 ;當(dāng)前節(jié)點(diǎn)確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N1與網(wǎng)絡(luò)質(zhì)量Q_W1中較差的一個(gè)。同上述方法類似,優(yōu)選的,當(dāng)前節(jié)點(diǎn)具體從接收的RREP消息中,獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2。優(yōu)選的,當(dāng)前節(jié)點(diǎn)獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量,具體為當(dāng)前節(jié)點(diǎn)獲取與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,所述正向前一節(jié)點(diǎn)為所述RREP消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);當(dāng)前節(jié)點(diǎn)獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2 ;當(dāng)前節(jié)點(diǎn)確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N2與網(wǎng)絡(luò)質(zhì)量Q_W2中較差的一個(gè)。上述過(guò)程中涉及消息傳輸路徑的網(wǎng)絡(luò)質(zhì)量計(jì)算,在無(wú)線通信中,消息傳輸路徑的網(wǎng)絡(luò)質(zhì)量需要直接反映網(wǎng)絡(luò)的通信速度及穩(wěn)定性。由于無(wú)線通信中信道的信噪比對(duì)通信速度有決定性的影響,并且信道的有限性會(huì)使得一定范圍內(nèi)多節(jié)點(diǎn)之間的通信出現(xiàn)互相干擾,從而影響通信速度及網(wǎng)絡(luò)的穩(wěn)定,優(yōu)選的,以信噪比和路徑所包含的跳數(shù)為參數(shù),可以分別采用以下兩種公式計(jì)算無(wú)線通信中消息傳輸路徑的網(wǎng)絡(luò)質(zhì)量Q = SNR/Hop(1)Q = SNR-Hop^Const (2)其中,Q為網(wǎng)絡(luò)質(zhì)量,Q值越大,網(wǎng)絡(luò)質(zhì)量越好,SNR為信噪比,Hop為路徑所包含的跳數(shù),Const為常數(shù),可根據(jù)實(shí)際需要確定Const的具體值。實(shí)際應(yīng)用中可以根據(jù)具體情況, 選擇以上兩種計(jì)算公式中的一種,例如使用公式1計(jì)算出的網(wǎng)絡(luò)質(zhì)量Q更能反映路徑通信速度及穩(wěn)定性時(shí),則選擇公式1作為網(wǎng)絡(luò)質(zhì)量Q的計(jì)算方式;或者,確定合適的Const值以后,使用公式2能計(jì)算出更能反映路徑通信速度及穩(wěn)定性的網(wǎng)絡(luò)質(zhì)量Q時(shí),則選擇公式2作為網(wǎng)絡(luò)質(zhì)量Q的計(jì)算方式。AODV協(xié)議中Hello消息為節(jié)點(diǎn)間相互廣播的消息,并且只有鄰居節(jié)點(diǎn)才能接收到 Hello消息,而反向前一節(jié)點(diǎn)或正向前一節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn),為了獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)或正向前一節(jié)點(diǎn)之間的信噪比,優(yōu)選的,當(dāng)前節(jié)點(diǎn)在確定收到鄰居節(jié)點(diǎn)廣播的Hello消息時(shí),獲取當(dāng)前節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的信噪比以供建立路由時(shí)使用。優(yōu)選的,當(dāng)前節(jié)點(diǎn)計(jì)算與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,具體包括利用所述當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比、所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù)為參數(shù),并采用上述公式(1)或公式O),計(jì)算當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量;當(dāng)前節(jié)點(diǎn)計(jì)算與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,具體包括利用所述當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的信噪比、所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù)為參數(shù),并采用上述公式(1)或公式O),計(jì)算當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量。本發(fā)明提供一種建立路由的方法實(shí)施例,涉及AODV協(xié)議在建立反向路由、正向路由時(shí)選擇路徑的過(guò)程,主要包括對(duì)以下三種消息的處理路由請(qǐng)求(RREQ)消息、路由廣播 (Hello)消息和路由響應(yīng)(RREP)消息。本發(fā)明實(shí)施例中處于鄰居關(guān)系或非鄰居關(guān)系的節(jié)點(diǎn)之間都通過(guò)RREQ消息和RREP 消息實(shí)現(xiàn)正、反向路由的建立。以下將當(dāng)前接收到各類型消息的節(jié)點(diǎn)稱為當(dāng)前節(jié)點(diǎn)。1、建立反向路由源節(jié)點(diǎn)廣播RREQ消息(其中攜帶了源節(jié)點(diǎn)及目的節(jié)點(diǎn)的IP地址等信息),由于只有鄰居關(guān)系之間的節(jié)點(diǎn)才能直接通信,所以源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)在收到RREQ消息后會(huì)將其再?gòu)V播出去,直到到達(dá)目的節(jié)點(diǎn)。如圖2所示,本發(fā)明實(shí)施例中當(dāng)前節(jié)點(diǎn)通過(guò)接收RREQ消息建立到源節(jié)點(diǎn)的反向路由的過(guò)程如下步驟201,當(dāng)前節(jié)點(diǎn)接收反向前一節(jié)點(diǎn)(所述反向前一節(jié)點(diǎn)為所述RREQ消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn))廣播的RREQ消息后,首先判斷該RREQ消息是否為自身發(fā)起的,如果是,則結(jié)束處理,否則,繼續(xù)處理。具體實(shí)現(xiàn)時(shí),當(dāng)前節(jié)點(diǎn)還可以判斷發(fā)送該RREQ消息的反向前一節(jié)點(diǎn)是否為自身黑名單中的節(jié)點(diǎn),如果是,則結(jié)束處理,否則,繼續(xù)處理。
步驟202,當(dāng)前節(jié)點(diǎn)判斷是否首次接收由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息,如果是,則執(zhí)行步驟203,否則,執(zhí)行步驟204。源節(jié)點(diǎn)在一定時(shí)間內(nèi)只廣播對(duì)應(yīng)同一目的節(jié)點(diǎn)的RREQ消息,因此當(dāng)前節(jié)點(diǎn)若在一定時(shí)間內(nèi)再次收到來(lái)自同一源節(jié)點(diǎn)的RREQ消息時(shí),則確定是再次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息,而非首次接收到。步驟203,當(dāng)前節(jié)點(diǎn)確定首次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息時(shí),計(jì)算出該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑Routelfirst的網(wǎng)絡(luò)質(zhì)量Ql_first,將該RREQ消息對(duì)應(yīng)的源節(jié)點(diǎn)IP地址、首次所經(jīng)路徑R0utel_first的網(wǎng)絡(luò)質(zhì)量Ql_first存儲(chǔ)到反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql中,然后利用所述首次所經(jīng)路徑Routel_ first的相反路徑建立當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路由(首次建立的反向路由),并將該反向路由存儲(chǔ)在反向路由表Table_Routel中,執(zhí)行步驟207。步驟204,當(dāng)前節(jié)點(diǎn)確定再次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息時(shí),計(jì)算出該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Routel_now的網(wǎng)絡(luò)質(zhì)量 Ql_now,執(zhí)行步驟205。步驟205,當(dāng)前節(jié)點(diǎn)從反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql中讀取先前存儲(chǔ)的對(duì)應(yīng)同一源節(jié)點(diǎn)IP地址的反向路由網(wǎng)絡(luò)質(zhì)量Ql,然后判斷該RREQ消息目前所經(jīng)路徑Routel_now 的網(wǎng)絡(luò)質(zhì)量Ql_now是否好于先前存儲(chǔ)的反向路由網(wǎng)絡(luò)質(zhì)量Ql,如果是,則執(zhí)行步驟206,否則,丟棄目前所經(jīng)路徑Routel_nOW的網(wǎng)絡(luò)質(zhì)量Ql_n0W,并結(jié)束處理。步驟206,將反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql中對(duì)應(yīng)同一源節(jié)點(diǎn)IP地址的反向路由網(wǎng)絡(luò)質(zhì)量Ql更新為目前所經(jīng)路徑Routel_now的網(wǎng)絡(luò)質(zhì)量Ql_n0W,并且將反向路由表 Table_Routel中當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路由更新為該RREQ消息目前所經(jīng)路徑Routel_ now的相反路徑。步驟207,當(dāng)前節(jié)點(diǎn)判斷自身是否為該RREQ消息的目的節(jié)點(diǎn),如果是,則執(zhí)行步驟 208,否則執(zhí)行步驟209。步驟208,當(dāng)前節(jié)點(diǎn)確定自身為目的節(jié)點(diǎn),并且首次建立或者剛剛更新了當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間的反向路由時(shí),按照首次建立的或更新的反向路由向源節(jié)點(diǎn)發(fā)送RREP消息。步驟209,當(dāng)前節(jié)點(diǎn)確定自身為非目的節(jié)點(diǎn),并且首次建立或者剛剛更新了當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間的反向路由時(shí),在所述RREQ消息中增加該消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Routel_nOW的網(wǎng)絡(luò)質(zhì)量Ql_now,然后將該RREQ消息再?gòu)V播出去。上述過(guò)程中,可以利用當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比、所述RREQ消息從源節(jié)點(diǎn)發(fā)出傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù)為參數(shù),計(jì)算RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量。本發(fā)明實(shí)施例中利用接收路由廣播Hello消息,來(lái)獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比某鄰居節(jié)點(diǎn)周期性的廣播Hello消息,當(dāng)前節(jié)點(diǎn)確定收到的消息為Hello消息時(shí), 獲取當(dāng)前節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的信噪比(Ad Hoc網(wǎng)絡(luò)中,節(jié)點(diǎn)在獲取數(shù)據(jù)包后都會(huì)通過(guò)物理層數(shù)據(jù)計(jì)算出信噪比并將其保存在內(nèi)存中的預(yù)設(shè)字段中),以供當(dāng)前節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間建立路由時(shí)使用。如圖3所示,獲取信噪比的過(guò)程例如可以如下步驟301,當(dāng)前節(jié)點(diǎn)的WIFI驅(qū)動(dòng)接收鄰居節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)包。
步驟302,當(dāng)前節(jié)點(diǎn)的設(shè)備操作系統(tǒng)通過(guò)物理層數(shù)據(jù)計(jì)算出當(dāng)前節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的信噪比SNR_n0W,并將其存入內(nèi)存預(yù)設(shè)的字段中。步驟303,當(dāng)前節(jié)點(diǎn)的設(shè)備操作系統(tǒng)判斷數(shù)據(jù)包中的消息是否為Hello消息,例如當(dāng)前節(jié)點(diǎn)的設(shè)備操作系統(tǒng)調(diào)用AODV協(xié)議掛接的鉤子函數(shù)AODVNetfilter判斷數(shù)據(jù)包中的消息是否為Hello消息,如果是,則繼續(xù)處理,否則,結(jié)束處理。步驟304,當(dāng)前節(jié)點(diǎn)的設(shè)備操作系統(tǒng)讀取所述內(nèi)存預(yù)設(shè)字段中存儲(chǔ)的信噪比SNR_ now,并用鉤子函數(shù)通過(guò)套接字Netlink將所述信噪比SNR_noW及源節(jié)點(diǎn)IP地址發(fā)送給當(dāng)前節(jié)點(diǎn)的用戶層。步驟305,當(dāng)前節(jié)點(diǎn)的用戶層接收后,判斷信噪比記錄表Table_S中是否有對(duì)應(yīng)所述IP地址的記錄項(xiàng),如果沒(méi)有,則為首次處理,執(zhí)行步驟306 ;否則,執(zhí)行步驟307。步驟306,當(dāng)前節(jié)點(diǎn)將所述源節(jié)點(diǎn)IP地址及信噪比SNR_n0W作為新的記錄項(xiàng)存入所述信噪比記錄表Table_S中,并結(jié)束處理。步驟307,當(dāng)前節(jié)點(diǎn)將所述信噪比記錄表Table_S中對(duì)應(yīng)所述IP地址的記錄項(xiàng)中的信噪比更新為所述信噪比SNR_n0W。該過(guò)程中,所述信噪比記錄表Table_S具體存儲(chǔ)了以下部分的內(nèi)容鄰居節(jié)點(diǎn)的 IP地址、當(dāng)前節(jié)點(diǎn)與所述鄰居節(jié)點(diǎn)之間的信噪比。其中,當(dāng)前節(jié)點(diǎn)在判斷所述信噪比記錄表 Table_S中沒(méi)有對(duì)應(yīng)所述鄰居節(jié)點(diǎn)IP地址的記錄項(xiàng)時(shí),確定首次接收到所述鄰居節(jié)點(diǎn)廣播的Hello消息,則將該鄰居節(jié)點(diǎn)IP地址、當(dāng)前接收到Hello消息時(shí)所計(jì)算的信噪比作為新的記錄項(xiàng),一起存入所述信噪比記錄表Table_S中;之后,當(dāng)前節(jié)點(diǎn)在判斷所述信噪比記錄表Table_S中已經(jīng)有對(duì)應(yīng)所述鄰居節(jié)點(diǎn)IP地址的記錄項(xiàng)時(shí),確定再次接收到了同一鄰居節(jié)點(diǎn)廣播的Hello消息,則將所述信噪比記錄表Table_S中先前存儲(chǔ)的信噪比更新為當(dāng)前再次接收到Hello消息時(shí)所計(jì)算的信噪比。由于Ad Hoc網(wǎng)絡(luò)中節(jié)點(diǎn)的移動(dòng)特點(diǎn),當(dāng)前節(jié)點(diǎn)接收到同一鄰居節(jié)點(diǎn)周期性廣播的 Hello消息時(shí)所計(jì)算出的SNR_n0W可能具有較大的差異,為了減少誤差,優(yōu)選的,判斷信噪比記錄表Table_S中存在對(duì)應(yīng)所述IP地址的記錄項(xiàng)時(shí),將所述信噪比SNR_noW與所述信噪比記錄表Table_S*先前記錄的信噪比值累計(jì)加在一起,然后求其平均值作為當(dāng)前節(jié)點(diǎn)與所述同一鄰居節(jié)點(diǎn)之間的信噪比,并且優(yōu)選的,在每5次累計(jì)平均后,對(duì)該記錄項(xiàng)進(jìn)行一次重置?;谝陨汐@取的信噪比,圖2中步驟203計(jì)算該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑Routel_first的網(wǎng)絡(luò)質(zhì)量Ql_first,如圖4所示,具體為步驟401,當(dāng)前節(jié)點(diǎn)從信噪比記錄表Table_S中讀取對(duì)應(yīng)反向前一節(jié)點(diǎn)IP地址的信噪比(反向前一節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn),在反向前一節(jié)點(diǎn)向當(dāng)前節(jié)點(diǎn)發(fā)送Hello消息時(shí),當(dāng)前節(jié)點(diǎn)已計(jì)算出二者之間的信噪比并存儲(chǔ)在信噪比記錄表Table_S中)。步驟402,當(dāng)前節(jié)點(diǎn)讀取該RREQ消息中所記載的從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑Route l_first包含的跳數(shù)。步驟403,當(dāng)前節(jié)點(diǎn)以所述對(duì)應(yīng)反向前一節(jié)點(diǎn)IP地址的信噪比和首次所經(jīng)路徑 Routel_first包含的跳數(shù)為參數(shù),計(jì)算出當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1。步驟404,當(dāng)前節(jié)點(diǎn)讀取該RREQ消息中所記錄的、從源節(jié)點(diǎn)發(fā)出至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量(即所經(jīng)歷的路徑中、擁有最差網(wǎng)絡(luò)質(zhì)量的兩個(gè)節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量)Q_W1,然后判斷所述Q_W1與Q_N1的優(yōu)劣,選擇所述網(wǎng)絡(luò)質(zhì)量Q_W1與所述網(wǎng)絡(luò)質(zhì)量Q_ Nl中較差的一個(gè)為該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑Routelfirst的網(wǎng)絡(luò)質(zhì)量Ql_first。令所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑R0utel_first的網(wǎng)絡(luò)質(zhì)量Ql_first為Q_W1與Q_N1中較差的一個(gè),這是由于消息在傳遞過(guò)程中所經(jīng)歷的整個(gè)路徑的網(wǎng)絡(luò)質(zhì)量是由路徑中所有節(jié)點(diǎn)之間最低的網(wǎng)絡(luò)質(zhì)量決定的,而Q_W1與Q_N1中較差的一個(gè)就是所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑中具有最差網(wǎng)絡(luò)質(zhì)量的兩個(gè)節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量。同理,圖2中步驟204計(jì)算該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑 Routel_now的網(wǎng)絡(luò)質(zhì)量Ql_now,具體為步驟al,當(dāng)前節(jié)點(diǎn)從信噪比記錄表Table_S中讀取對(duì)應(yīng)反向前一節(jié)點(diǎn)IP地址的信噪比。步驟a2,當(dāng)前節(jié)點(diǎn)讀取該RREQ消息中所記載的從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Route l_n0W包含的跳數(shù)。步驟a3,當(dāng)前節(jié)點(diǎn)以所述對(duì)應(yīng)反向前一節(jié)點(diǎn)IP地址的信噪比和目前所經(jīng)路徑 Routel_now包含的跳數(shù)為參數(shù),計(jì)算出當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1。步驟a4,當(dāng)前節(jié)點(diǎn)讀取該RREQ消息中所記錄的,從源節(jié)點(diǎn)發(fā)出至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1,并判斷所述Q_W1與Q_N1的優(yōu)劣,令該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Routel_nOW的網(wǎng)絡(luò)質(zhì)量Ql_n0W*Q_Wl與0_附中較差的一個(gè)。上述過(guò)程中的反向路由表Table_R0Utel存儲(chǔ)了當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間建立的反向路由,反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql則存儲(chǔ)了以下兩個(gè)部分RREQ消息對(duì)應(yīng)的源節(jié)點(diǎn)IP 地址(用于確定是否再次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息)、所述反向路由的網(wǎng)絡(luò)質(zhì)量Q1。其中,當(dāng)前節(jié)點(diǎn)首次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息時(shí),確定反向路由表Table_R0Utel中記錄的當(dāng)前節(jié)點(diǎn)與源節(jié)點(diǎn)之間的反向路由為該RREQ消息首次所經(jīng)路徑Routelfirst的相反路徑,并且確定反向網(wǎng)絡(luò)質(zhì)量記錄表 Table_Ql中記錄的所述反向路由網(wǎng)絡(luò)質(zhì)量Ql為首次所經(jīng)路徑Routel_first的網(wǎng)絡(luò)質(zhì)量 Ql_first ;在之后當(dāng)前節(jié)點(diǎn)再次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息時(shí),如果該RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Routel_now的網(wǎng)絡(luò)質(zhì)量Ql_noW, 好于反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql中先前存儲(chǔ)的反向路由網(wǎng)絡(luò)質(zhì)量Q1,則將反向路由表 Table_Routel中記錄的當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)之間的反向路由更新為該RREQ消息目前所經(jīng)路徑R0utel_n0W的相反路徑,并且將反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql中記錄的反向路由網(wǎng)絡(luò)質(zhì)量Ql,更新為所述目前所經(jīng)路徑Routel_now的網(wǎng)絡(luò)質(zhì)量Ql_n0W。在上述處理RREQ消息的機(jī)制中,當(dāng)前節(jié)點(diǎn)在首次收到由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的 RREQ消息時(shí),使用首次所經(jīng)歷的路徑建立到源節(jié)點(diǎn)之間的反向路由,即仍然按照現(xiàn)有技術(shù)的方式選擇響應(yīng)速度最快的路徑建立路由,但在之后再次接收到由所述源節(jié)點(diǎn)發(fā)往所述目的節(jié)點(diǎn)的RREQ消息時(shí),不是立即停止處理,而是會(huì)根據(jù)當(dāng)前路徑的網(wǎng)絡(luò)質(zhì)量與先前已建立的反向路由的網(wǎng)絡(luò)質(zhì)量的比較結(jié)果,來(lái)確定是否需要更新當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路由, 如果確定當(dāng)前路徑的網(wǎng)絡(luò)質(zhì)量好于先前路徑的網(wǎng)絡(luò)質(zhì)量,則對(duì)反向路由進(jìn)行更新,否則就繼續(xù)使用先前的路徑。這樣在建立反向路由的過(guò)程時(shí),就總是能從當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)之間各種可能的路徑中選取具有較好網(wǎng)絡(luò)質(zhì)量的路徑建立反向路由,然后再將RREQ消息繼續(xù)廣播出去,直到到達(dá)目的節(jié)點(diǎn)。本發(fā)明實(shí)施例在處理RREQ消息的過(guò)程中,目的節(jié)點(diǎn)與處于源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的各節(jié)點(diǎn)類似,也會(huì)多次收到由所述源節(jié)點(diǎn)發(fā)出的RREQ消息,并可能會(huì)多次更新目的節(jié)點(diǎn)到源節(jié)點(diǎn)之間的反向路由,目的節(jié)點(diǎn)在每次更新反向路由后,都按照新建立的反向路由返回一條RREP消息給源節(jié)點(diǎn)。2、建立正向路由RREP消息為目的節(jié)點(diǎn)收到RREQ消息后,按照反向路由單播發(fā)送給源節(jié)點(diǎn)的消息, 源節(jié)點(diǎn)通過(guò)接收RREP消息建立源節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由。在本發(fā)明實(shí)施例中,由于目的節(jié)點(diǎn)在每次更新反向路由后都會(huì)發(fā)送RREP消息,因此可能會(huì)按照不同的路徑(對(duì)應(yīng)不同時(shí)間建立的反向路由)返回多條RREP消息給源節(jié)點(diǎn)。為了在建立源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的正向路由時(shí)也選擇具有較好網(wǎng)絡(luò)質(zhì)量的路徑,同RREQ消息的處理機(jī)制類似,本發(fā)明實(shí)施例對(duì)RREP消息的處理也加入了網(wǎng)絡(luò)質(zhì)量的判斷,如圖5所示,具體處理過(guò)程如下步驟501,當(dāng)前節(jié)點(diǎn)接收正向前一節(jié)點(diǎn)(所述正向前一節(jié)點(diǎn)為所述RREP消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn))單播的RREP消息后,判斷是否首次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息,如果是,則執(zhí)行步驟502,否則,執(zhí)行步驟503。由于源節(jié)點(diǎn)在一定時(shí)間內(nèi)只廣播對(duì)應(yīng)同一目的節(jié)點(diǎn)的RREQ消息,因此目的節(jié)點(diǎn)在一定的時(shí)間內(nèi)就只會(huì)向同一源節(jié)點(diǎn)單播發(fā)送RREP消息,因此當(dāng)前節(jié)點(diǎn)若在一定時(shí)間內(nèi)再次收到來(lái)自所述目的節(jié)點(diǎn)的RREP消息時(shí),則確定是再次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息,而非首次接收到。步驟502,當(dāng)前節(jié)點(diǎn)確定首次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息時(shí),計(jì)算出該RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí),首次所經(jīng)路徑R0ute2_f irst的網(wǎng)絡(luò)質(zhì)量Q2_first,將該RREP消息對(duì)應(yīng)的目的節(jié)點(diǎn)IP地址、首次所經(jīng)路徑R0ute2_first的網(wǎng)絡(luò)質(zhì)量Q2_first存儲(chǔ)到正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2中,然后建立當(dāng)前節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由為所述首次所經(jīng)路徑Route2_firSt的相反路徑,并將該反向路由存儲(chǔ)在正向路由表Table_Route2中,執(zhí)行步驟506。步驟503,當(dāng)前節(jié)點(diǎn)確定再次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息時(shí),計(jì)算出該RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Route2_now的網(wǎng)絡(luò)質(zhì)量Q2_now,執(zhí)行步驟504。步驟504,當(dāng)前節(jié)點(diǎn)從正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2中讀取先前存儲(chǔ)的對(duì)應(yīng)同一目的節(jié)點(diǎn)IP地址的正向路由網(wǎng)絡(luò)質(zhì)量Q2,然后判斷該RREP消息目前所經(jīng)路徑R0ute2_n0W 的網(wǎng)絡(luò)質(zhì)量Q2_n0W是否好于先前存儲(chǔ)的正向路由網(wǎng)絡(luò)質(zhì)量Q2,如果是,則執(zhí)行步驟505,否則,丟棄目前所經(jīng)路徑Route2_nOW的網(wǎng)絡(luò)質(zhì)量Q2_n0W,并結(jié)束處理。步驟505,將正向網(wǎng)絡(luò)質(zhì)量記錄表I~able_Q2中對(duì)應(yīng)同一目的節(jié)點(diǎn)IP地址的正向路由網(wǎng)絡(luò)質(zhì)量Q2更新為目前所經(jīng)路徑Route2_now的網(wǎng)絡(luò)質(zhì)量Q2_noW,并且將正向路由表 Table_Route2中當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)的正向路由更新為該RREP消息目前所經(jīng)路徑Route2_ now的相反路徑。步驟506,當(dāng)前節(jié)點(diǎn)判斷自身是否為該RREP消息的源節(jié)點(diǎn),如果是,則執(zhí)行步驟 507,否則執(zhí)行步驟508。
步驟507,當(dāng)前節(jié)點(diǎn)確定自身為源節(jié)點(diǎn)后,確定與目的節(jié)點(diǎn)之間能夠按照已經(jīng)建立的正向路由、反向路由進(jìn)行通信。步驟508,當(dāng)前節(jié)點(diǎn)按照反向路由將該RREP消息再轉(zhuǎn)發(fā)出去。本發(fā)明實(shí)施例對(duì)RREP消息的處理過(guò)程中涉及的以下計(jì)算消息傳輸路徑網(wǎng)絡(luò)質(zhì)量的計(jì)算、該RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)首次所經(jīng)路徑RoUte2_first的網(wǎng)絡(luò)質(zhì)量Q2_first的計(jì)算、該RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Route2_ now的網(wǎng)絡(luò)質(zhì)量Q2_n0W的計(jì)算,均按照本發(fā)明實(shí)施例對(duì)RREQ消息的處理過(guò)程中相應(yīng)的處理方式進(jìn)行處理,在此不再贅述。上述過(guò)程中的正向路由表Tab 1 e_Route2存儲(chǔ)了當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)之間建立的正向路由,正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2則存儲(chǔ)了以下兩個(gè)部分RREP消息對(duì)應(yīng)的目的節(jié)點(diǎn)IP地址(用于確定是否再次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息)、所述正向路由的網(wǎng)絡(luò)質(zhì)量Q2。其中,當(dāng)前節(jié)點(diǎn)首次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的 RREP消息時(shí),確定正向路由表Tab 1 e_Rout e 2中記錄的當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的正向路由為該RREP消息首次所經(jīng)路徑R0ute2_first的相反路徑,并且確定正向網(wǎng)絡(luò)質(zhì)量記錄表 Table_Q2中記錄的所述正路由網(wǎng)絡(luò)質(zhì)量Q2為首次所經(jīng)路徑Route2_first的網(wǎng)絡(luò)質(zhì)量Q2_ first ;在之后當(dāng)前節(jié)點(diǎn)再次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息時(shí),如果該RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)目前所經(jīng)路徑Route2_now的網(wǎng)絡(luò)質(zhì)量Q2_noW, 好于正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2中先前存儲(chǔ)的正向路由網(wǎng)絡(luò)質(zhì)量Q2,則將正向路由表 Table_Route2中記錄的當(dāng)前節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由,更新為該RREP消息目前所經(jīng)路徑R0ute2_n0W的相反路徑,并且將正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2中記錄的正向路由網(wǎng)絡(luò)質(zhì)量Q2,更新為所述目前所經(jīng)路徑Route2_now的網(wǎng)絡(luò)質(zhì)量Q2_n0W。Ad Hoc網(wǎng)絡(luò)中,任意節(jié)點(diǎn)都可以為源節(jié)點(diǎn)或目的節(jié)點(diǎn)或中間節(jié)點(diǎn),也都可以接收 RREQ消息或RREP消息,建立與源節(jié)點(diǎn)之間的反向路由或正向路由,優(yōu)選的,每個(gè)節(jié)點(diǎn)使用同一個(gè)網(wǎng)絡(luò)質(zhì)量記錄表來(lái)存儲(chǔ)當(dāng)前接收的RREQ消息/RREP消息所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量,即反向網(wǎng)絡(luò)質(zhì)量記錄表Table_Ql和正向網(wǎng)絡(luò)質(zhì)量記錄表Table_Q2為同一個(gè),只要對(duì)不同類型路徑(正向路由的路徑或反向路由的路徑)的網(wǎng)絡(luò)質(zhì)量進(jìn)行不同的標(biāo)記即可。同理,優(yōu)選的,每個(gè)節(jié)點(diǎn)使用同一個(gè)路由表來(lái)存儲(chǔ)自身與源節(jié)點(diǎn)之間的反向路由以及自身與目的節(jié)點(diǎn)之間的正向路由,即反向路由表!"able—Routes和正向路由表Table_Routel為同一個(gè),只要對(duì)不同類型的路由(正向路由或反向路由)進(jìn)行不同的標(biāo)記即可。在上述處理RREP消息的機(jī)制中,當(dāng)前節(jié)點(diǎn)在首次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息時(shí),使用首次所經(jīng)歷的路徑建立到目的節(jié)點(diǎn)之間的正向路由,在之后再次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息時(shí),根據(jù)當(dāng)前路徑的網(wǎng)絡(luò)質(zhì)量與先前已建立的正向路由的網(wǎng)絡(luò)質(zhì)量的比較結(jié)果,來(lái)確定是否需要更新當(dāng)前節(jié)點(diǎn)到目的節(jié)點(diǎn)的正向路由,如果確定當(dāng)前路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于先前路徑的網(wǎng)絡(luò)質(zhì)量,則對(duì)正向路由進(jìn)行更新,否則就繼續(xù)使用先前的路徑。這樣在建立正向路由的過(guò)程時(shí),就總是能從當(dāng)前節(jié)點(diǎn)到目的節(jié)點(diǎn)之間各種可能的路徑中選取具有較好網(wǎng)絡(luò)質(zhì)量的路徑建立正向路由,然后再按照反向路由將RREP消息繼續(xù)單播發(fā)送出去,直到到達(dá)源節(jié)點(diǎn)。與現(xiàn)有技術(shù)不同的是,雖然RREP消息為單播消息,但是本發(fā)明中處于目的節(jié)點(diǎn)與源節(jié)點(diǎn)之間的節(jié)點(diǎn)也可能會(huì)多次接收到由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息,在這種情況下,接收到RREP消息的當(dāng)前節(jié)點(diǎn)就可以采用選取具有更好網(wǎng)絡(luò)質(zhì)量路徑的方式來(lái)建立正向路由,而不是像現(xiàn)有技術(shù)中只是單純的在接收到RREP消息后,建立與反向路由具有相同路徑的正向路由,這樣,正向路由就可以與反向路由擁有不同的路徑,在Ad Hoc網(wǎng)絡(luò)中源節(jié)點(diǎn)與目的節(jié)點(diǎn)所擁有的通信資源不對(duì)稱的情況下,有利于提高源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的通信質(zhì)量。通過(guò)以上對(duì)Hello消息、RREQ消息、RREP消息處理過(guò)程的描述,可知在本發(fā)明實(shí)施例中,每個(gè)當(dāng)前節(jié)點(diǎn)都會(huì)記錄自身與鄰居節(jié)點(diǎn)之間的信噪比,然后在與目的節(jié)點(diǎn)/源節(jié)點(diǎn)之間建立反向路由/正向路由時(shí),利用已記錄的信噪比計(jì)算出當(dāng)前接收的RREQ消息/RREP 消息從源節(jié)點(diǎn)/目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量,并且在多次接收具有相同源節(jié)點(diǎn)和目的節(jié)點(diǎn)的RREQ消息/RREP消息后,選擇擁有更好網(wǎng)絡(luò)質(zhì)量的路徑對(duì)已經(jīng)建立的反向路由/正向路由進(jìn)行更新,從而可以為源節(jié)點(diǎn)及目的節(jié)點(diǎn)之間的通信建立具有較好網(wǎng)絡(luò)質(zhì)量的路徑,獲得較高的通信速度及較佳的網(wǎng)絡(luò)穩(wěn)定性?,F(xiàn)有的AODV協(xié)議中,Hello消息的處理機(jī)制為當(dāng)前節(jié)點(diǎn)在接收到Hello消息后立即建立與鄰居節(jié)點(diǎn)之間為單跳路徑的路由,之后當(dāng)前節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間就會(huì)直接使用該單跳路徑進(jìn)行通信。這樣會(huì)導(dǎo)致如果處于鄰居關(guān)系的節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量很差,AODV協(xié)議也不會(huì)去選擇可能存在的擁有更好網(wǎng)絡(luò)質(zhì)量的多跳路徑,而直接使用已經(jīng)建立好的單跳路徑,結(jié)果就會(huì)導(dǎo)致鄰居之間的通信速度很慢,通信質(zhì)量下降。而本發(fā)明實(shí)施例提供的方法中,鄰居節(jié)點(diǎn)收到Hello消息后,不立即建立與源節(jié)點(diǎn)之間為單跳路徑的路由,而是采用在發(fā)送RREQ消息和接收RREP消息之后,才建立與源節(jié)點(diǎn)/目的節(jié)點(diǎn)之間的正、反向路由,這樣就可以在鄰居之間的網(wǎng)絡(luò)質(zhì)量很差時(shí),選擇擁有更好網(wǎng)絡(luò)質(zhì)量的多跳路徑進(jìn)行通信,而不是僅限于使用二者之間的單跳路徑作為路由進(jìn)行通
fn °AODV協(xié)議中對(duì)已經(jīng)建立的路由進(jìn)行維護(hù)時(shí)使用RRER消息,本發(fā)明實(shí)施例主要涉及AODV協(xié)議在建立正向、反向路由時(shí)選擇路徑的過(guò)程,維護(hù)路由仍然采用現(xiàn)有AODV協(xié)議中 RRER消息的處理機(jī)制,在此不再贅述。本發(fā)明實(shí)施例還提供一種建立路由的裝置,該裝置包含于當(dāng)前節(jié)點(diǎn)中,如圖6所示,該裝置包括RREQ接收模塊601,用于接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;第一獲取模塊602,用于獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;反向路由更新模塊603,用于確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用當(dāng)前節(jié)點(diǎn)首次接收的所述RREQ消息所經(jīng)路徑建立的。優(yōu)選的,上述建立路由的裝置還可以包括RREP接收模塊604,用于接收由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息;第二獲取模塊605,用于獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量;
正向路由更新模塊606,用于確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述目的節(jié)點(diǎn)的正向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第二路徑的相反方向路徑更新所述正向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述目的節(jié)點(diǎn)的正向路由,是利用當(dāng)前節(jié)點(diǎn)首次接收的所述RREP消息所經(jīng)路徑建立的。進(jìn)一步的,反向路由更新模塊603可以用于若當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則按照所述首次建立的或更新的反向路由返回RREP消息;若當(dāng)前節(jié)點(diǎn)為非目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則廣播包含所述第一路徑的網(wǎng)絡(luò)質(zhì)量的RREQ消息。其中,所述網(wǎng)絡(luò)質(zhì)量為對(duì)應(yīng)路徑中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量中的最差網(wǎng)絡(luò)質(zhì)量。第一獲取模塊602獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量,具體可以為獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,所述反向前一節(jié)點(diǎn)為所述RREQ消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1 ;確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N1與網(wǎng)絡(luò)質(zhì)量Q_W1中較差的一個(gè)。第二獲取模塊605獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量,具體可以為獲取當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,所述正向前一節(jié)點(diǎn)為所述RREP消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2 ;確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N2與網(wǎng)絡(luò)質(zhì)量Q_W2中較差的一個(gè)。進(jìn)一步的,第一獲取模塊602具體可以從所述RREQ接收模塊601接收的RREQ消息中,獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1。第二獲取模塊605具體可以從RREP接收模塊604接收的RREP消息中,獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2。進(jìn)一步的,所述建立路由的裝置還可以包括信噪比獲取模塊,該信噪比獲取模塊用于在當(dāng)前節(jié)點(diǎn)收到Hello消息時(shí),獲取當(dāng)前節(jié)點(diǎn)與發(fā)送hello消息的節(jié)點(diǎn)之間的信噪比。 進(jìn)一步的,信噪比獲取模塊還可以用于在獲取當(dāng)前節(jié)點(diǎn)與發(fā)送Hello消息的節(jié)點(diǎn)之間的信噪比預(yù)定次數(shù)之后求平均值,確定所述平均值為與所述發(fā)送Hello消息的節(jié)點(diǎn)之間的信噪比。第一獲取模塊602獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,具體可以包括利用所述當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比、所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量9_附。第二獲取模塊605獲取當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,具體可以包括利用所述當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的信噪比、所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2。進(jìn)一步的,第一獲取模塊602、第二獲取模塊605具體可以采用以下公式計(jì)算網(wǎng)絡(luò)質(zhì)量Q = SNR/Hop;或者
Q = SNR-Hop氺Const ;其中,Q為網(wǎng)絡(luò)質(zhì)量,Q值越大,網(wǎng)絡(luò)質(zhì)量越好,SNR為信噪比,Hop為跳數(shù),Const為常數(shù)。相應(yīng)的,本發(fā)明實(shí)施例還提供一種用于無(wú)線自組網(wǎng)的節(jié)點(diǎn),該節(jié)點(diǎn)包含有如上所述建立路由的裝置。所述建立路由的裝置、用于無(wú)線自組網(wǎng)的節(jié)點(diǎn)的工作原理參考上述建立路由方法的具體實(shí)施方式
,在此不再贅述。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種建立路由的方法,其特征在于,當(dāng)前節(jié)點(diǎn)接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息; 當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量; 當(dāng)前節(jié)點(diǎn)確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用首次接收的所述RREQ消息所經(jīng)路徑建立的。
2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括若當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則按照所述首次建立的或更新的反向路由返回路由響應(yīng)RREP消息;若當(dāng)前節(jié)點(diǎn)為非目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則廣播包含所述第一路徑的網(wǎng)絡(luò)質(zhì)量的RREQ消息。
3.如權(quán)利要求1或2所述的方法,其特征在于,進(jìn)一步包括 當(dāng)前節(jié)點(diǎn)接收由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息;當(dāng)前節(jié)點(diǎn)獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量; 當(dāng)前節(jié)點(diǎn)確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述目的節(jié)點(diǎn)的正向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第二路徑的相反方向路徑更新所述正向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述目的節(jié)點(diǎn)的正向路由,是利用首次接收的所述RREP 消息所經(jīng)路徑建立的。
4.如權(quán)利要求3所述的方法,其特征在于,所述網(wǎng)絡(luò)質(zhì)量為對(duì)應(yīng)路徑中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量中的最差網(wǎng)絡(luò)質(zhì)量;則當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量, 具體為當(dāng)前節(jié)點(diǎn)獲取與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,所述反向前一節(jié)點(diǎn)為所述RREQ 消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1 ;當(dāng)前節(jié)點(diǎn)確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N1與網(wǎng)絡(luò)質(zhì)量Q_W1中較差的一個(gè);當(dāng)前節(jié)點(diǎn)獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量, 具體為當(dāng)前節(jié)點(diǎn)獲取與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,所述正向前一節(jié)點(diǎn)為所述RREP 消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);當(dāng)前節(jié)點(diǎn)獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2 ;當(dāng)前節(jié)點(diǎn)確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N2與網(wǎng)絡(luò)質(zhì)量Q_W2中較差的一個(gè)。
5.如權(quán)利要求4所述的方法,其特征在于,當(dāng)前節(jié)點(diǎn)具體從接收的RREQ消息中,獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1 ;當(dāng)前節(jié)點(diǎn)具體從接收的RREP消息中,獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2。
6.如權(quán)利要求4所述的方法,其特征在于,網(wǎng)絡(luò)中的節(jié)點(diǎn)在收到Hello消息時(shí)獲取與發(fā)送Hello消息的節(jié)點(diǎn)之間的信噪比;則當(dāng)前節(jié)點(diǎn)獲取與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,具體包括 利用所述當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比、所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量9_附; 當(dāng)前節(jié)點(diǎn)獲取與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,具體包括 利用所述當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的信噪比、所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2。
7.如權(quán)利要求6所述的方法,其特征在于,具體采用以下公式計(jì)算網(wǎng)絡(luò)質(zhì)量 Q = SNR/Hop ;或者Q = SNR-Hop^Const ;其中,Q為網(wǎng)絡(luò)質(zhì)量,Q值越大,網(wǎng)絡(luò)質(zhì)量越好,SNR為信噪比,Hop為跳數(shù),Const為常數(shù)。
8.如權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括所述網(wǎng)絡(luò)中的節(jié)點(diǎn)在獲取與發(fā)送Hello消息的節(jié)點(diǎn)之間的信噪比預(yù)定次數(shù)之后求平均值,確定所述平均值為與所述發(fā)送 Hello消息的節(jié)點(diǎn)之間的信噪比。
9.一種建立路由的裝置,其特征在于,包含于當(dāng)前節(jié)點(diǎn)中,所述裝置包括 RREQ接收模塊,用于接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;第一獲取模塊,用于獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;反向路由更新模塊,用于確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第一路徑的相反方向路徑更新所述反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述源節(jié)點(diǎn)的反向路由,是利用當(dāng)前節(jié)點(diǎn)首次接收的所述RREQ消息所經(jīng)路徑建立的。
10.如權(quán)利要求9所述的裝置,其特征在于,所述反向路由更新模塊進(jìn)一步用于若當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則按照所述首次建立的或更新的反向路由返回路由響應(yīng)RREP消息;若當(dāng)前節(jié)點(diǎn)為非目的節(jié)點(diǎn),且首次建立到所述源節(jié)點(diǎn)的反向路由或更新到所述源節(jié)點(diǎn)的反向路由,則廣播包含所述第一路徑的網(wǎng)絡(luò)質(zhì)量的RREQ消息。
11.如權(quán)利要求9或10所述的裝置,其特征在于,還包括RREP接收模塊,用于接收由所述目的節(jié)點(diǎn)發(fā)往所述源節(jié)點(diǎn)的RREP消息; 第二獲取模塊,用于獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量;正向路由更新模塊,用于確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到所述目的節(jié)點(diǎn)的正向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用所述第二路徑的相反方向路徑更新所述正向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到所述目的節(jié)點(diǎn)的正向路由,是利用當(dāng)前節(jié)點(diǎn)首次接收的所述RREP消息所經(jīng)路徑建立的。
12.如權(quán)利要求11所述的裝置,其特征在于,所述網(wǎng)絡(luò)質(zhì)量為對(duì)應(yīng)路徑中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量中的最差網(wǎng)絡(luò)質(zhì)量;則所述第一獲取模塊獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量,具體為獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,所述反向前一節(jié)點(diǎn)為所述RREQ 消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量0_11 ;確定所述第一路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N1與網(wǎng)絡(luò)質(zhì)量Q_W1中較差的一個(gè);所述第二獲取模塊獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第二路徑的網(wǎng)絡(luò)質(zhì)量,具體為獲取當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,所述正向前一節(jié)點(diǎn)為所述RREP 消息到達(dá)當(dāng)前節(jié)點(diǎn)之前所到達(dá)的節(jié)點(diǎn);獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2 ;確定所述第二路徑的網(wǎng)絡(luò)質(zhì)量為所述網(wǎng)絡(luò)質(zhì)量Q_N2與網(wǎng)絡(luò)質(zhì)量Q_W2中較差的一個(gè)。
13.如權(quán)利要求12所述的裝置,其特征在于,所述第一獲取模塊具體從所述RREQ接收模塊接收的RREQ消息中,獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至反向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W1 ;所述第二獲取模塊具體從所述RREP接收模塊接收的RREP消息中,獲取所述RREP消息從目的節(jié)點(diǎn)傳輸至正向前一節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量Q_W2。
14.如權(quán)利要求12所述的裝置,其特征在于,還包括信噪比獲取模塊,用于在當(dāng)前節(jié)點(diǎn)收到Hello消息時(shí),獲取當(dāng)前節(jié)點(diǎn)與發(fā)送hello消息的節(jié)點(diǎn)之間的信噪比;則所述第一獲取模塊獲取當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N1,具體包括利用所述當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的信噪比、所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與反向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量9_附;所述第二獲取模塊獲取當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2,具體包括禾IJ用所述當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的信噪比、所述RREP消息從目的節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)路徑的跳數(shù),計(jì)算當(dāng)前節(jié)點(diǎn)與正向前一節(jié)點(diǎn)之間的網(wǎng)絡(luò)質(zhì)量Q_N2。
15.一種用于無(wú)線自組網(wǎng)的節(jié)點(diǎn),其特征在于,包括權(quán)利要求9-14任一所述的裝置。
全文摘要
本發(fā)明公開(kāi)了一種建立路由的方法、裝置及節(jié)點(diǎn),該方法包括當(dāng)前節(jié)點(diǎn)接收由源節(jié)點(diǎn)發(fā)往目的節(jié)點(diǎn)的路由請(qǐng)求RREQ消息;當(dāng)前節(jié)點(diǎn)獲取所述RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)所經(jīng)第一路徑的網(wǎng)絡(luò)質(zhì)量;當(dāng)前節(jié)點(diǎn)確定第一路徑的網(wǎng)絡(luò)質(zhì)量?jī)?yōu)于已有的當(dāng)前節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路由的網(wǎng)絡(luò)質(zhì)量時(shí),利用第一路徑的相反方向路徑更新反向路由;其中,當(dāng)前節(jié)點(diǎn)首次建立的到源節(jié)點(diǎn)的反向路由,是利用首次接收的所述RREQ消息所經(jīng)路徑建立的。本發(fā)明在建立反向路由的過(guò)程中加入了路徑網(wǎng)絡(luò)質(zhì)量的判斷,通過(guò)計(jì)算每次接收的RREQ消息從源節(jié)點(diǎn)傳輸至當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)路徑的網(wǎng)絡(luò)質(zhì)量,選擇具有較好網(wǎng)絡(luò)質(zhì)量的路徑,從而獲得較高的通信速度及較佳的網(wǎng)絡(luò)穩(wěn)定性。
文檔編號(hào)H04W84/18GK102340840SQ20111031944
公開(kāi)日2012年2月1日 申請(qǐng)日期2011年10月19日 優(yōu)先權(quán)日2011年10月19日
發(fā)明者徐海平 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司