專(zhuān)利名稱(chēng):一種基于信號(hào)強(qiáng)度的車(chē)載Ad hoc網(wǎng)絡(luò)分簇方法
技術(shù)領(lǐng)域:
基于信號(hào)強(qiáng)度的車(chē)載Ad hoc網(wǎng)絡(luò)分簇方法屬于大規(guī)模無(wú)線(xiàn)Ad hoc網(wǎng)絡(luò)分簇路由研究領(lǐng)域。
背景技術(shù):
移動(dòng)Ad hoc網(wǎng)絡(luò)(MANET)是一種多跳的、自組織的網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)既是主機(jī),又是路由器,兩個(gè)節(jié)點(diǎn)之間如果要進(jìn)行通信,如果對(duì)方不在自己的信號(hào)覆蓋范圍內(nèi),需要借助其他節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)。路由選擇的優(yōu)劣在很大程度上影響了網(wǎng)絡(luò)的性能。由于MANET網(wǎng)絡(luò)中的節(jié)點(diǎn)隨時(shí)可能移動(dòng),并且沒(méi)有基站之類(lèi)的中央控制設(shè)備與之相連,這一方面給用戶(hù)帶來(lái)了很大的便利,另一方面也為設(shè)計(jì)合適的路由協(xié)議帶來(lái)了困難。
從網(wǎng)絡(luò)的體系結(jié)構(gòu)方面考慮,移動(dòng)Ad hoc網(wǎng)絡(luò)(MANET)可分為平面式和分級(jí)式。平面結(jié)構(gòu)比較健壯,但是控制開(kāi)銷(xiāo)大,可擴(kuò)展性不佳,主要適用于中小型網(wǎng)絡(luò)。分級(jí)結(jié)構(gòu)中,網(wǎng)絡(luò)劃分成簇,每個(gè)簇包含一個(gè)簇頭和多個(gè)簇成員,簇頭和網(wǎng)關(guān)構(gòu)成虛擬骨干網(wǎng)。分級(jí)結(jié)構(gòu)的優(yōu)點(diǎn)是網(wǎng)絡(luò)可擴(kuò)充性好,容易實(shí)現(xiàn)網(wǎng)絡(luò)的管理和同步。另外,基于分簇結(jié)構(gòu),MANET可采用類(lèi)似蜂窩網(wǎng)絡(luò)的資源分配方法。在簇內(nèi),簇頭可以控制節(jié)點(diǎn)的業(yè)務(wù)接入請(qǐng)求并合理分配帶寬。因此通過(guò)分簇算法將網(wǎng)絡(luò)劃分成簇可以提高Ad hoc網(wǎng)絡(luò)的性能,具有重要意義。目前,已經(jīng)提出很多啟發(fā)式分簇算法,如最小節(jié)點(diǎn)分簇算法,最高節(jié)點(diǎn)度分簇算法,節(jié)點(diǎn)權(quán)重分簇算法,按需加權(quán)分簇算法,以及有效減少簇頭數(shù)量的多跳分簇算法等等。其中,最大節(jié)點(diǎn)度算法的原則是盡量減少簇的數(shù)目,以減少報(bào)文傳輸時(shí)的轉(zhuǎn)發(fā)次數(shù)。每個(gè)節(jié)點(diǎn)通過(guò)交互控制消息可以知道其鄰居節(jié)點(diǎn)的數(shù)目,然后將自己的度數(shù)(已被分簇的節(jié)點(diǎn)不計(jì)算其節(jié)點(diǎn)度)向鄰居節(jié)點(diǎn)廣播。在所有未被分簇節(jié)點(diǎn)中,選擇度數(shù)最大的節(jié)點(diǎn)做為簇頭。當(dāng)度數(shù)相同時(shí),則選擇ID最小的節(jié)點(diǎn)作為簇頭。簇頭的鄰居節(jié)點(diǎn)則成為該簇的成員,并不再參與簇的生成過(guò)程,反復(fù)進(jìn)行以上過(guò)程直到所有節(jié)點(diǎn)都加入某個(gè)簇。該算法的優(yōu)點(diǎn)在于分簇算法簡(jiǎn)單,網(wǎng)絡(luò)中簇的數(shù)目較少,即源目的節(jié)點(diǎn)對(duì)之間的平均跳數(shù)較少,從而減少了分組往返時(shí)延。該算法的缺點(diǎn)在于簇首節(jié)點(diǎn)的選舉算法不夠優(yōu)化,且網(wǎng)絡(luò)分簇并沒(méi)有考慮節(jié)點(diǎn)移動(dòng)方向信息,因此當(dāng)節(jié)點(diǎn)移動(dòng)性較強(qiáng)時(shí),簇頭的更新頻率急劇上升,造成了大量的維護(hù)開(kāi)銷(xiāo)。因此,如何設(shè)計(jì)一種高效率的分簇生成與維護(hù)策略,解決大規(guī)模高移動(dòng)性車(chē)載Ad hoc網(wǎng)絡(luò)所存在的上述問(wèn)題,是當(dāng)前分簇路由協(xié)議所研究的關(guān)鍵問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種能夠優(yōu)化分簇性能、穩(wěn)定分簇結(jié)構(gòu)的基于信號(hào)強(qiáng)度的車(chē)載Ad hoc網(wǎng)絡(luò)分簇方法。
本發(fā)明的特征在于,它依次含有以下步驟 步驟(1.)節(jié)點(diǎn)初始化在每個(gè)節(jié)點(diǎn)中建立一跳鄰居表,記錄節(jié)點(diǎn)與所有一跳鄰居節(jié)點(diǎn)的鏈接關(guān)系,其中包括鄰居節(jié)點(diǎn)ID,本節(jié)點(diǎn)與鄰居節(jié)點(diǎn)連接信號(hào)強(qiáng)度;建立分簇信息表,其中包括簇內(nèi)節(jié)點(diǎn)ID、節(jié)點(diǎn)類(lèi)型、優(yōu)先級(jí)、連接跳數(shù)信息;在臨時(shí)簇首節(jié)點(diǎn)中建立兩跳鄰居節(jié)點(diǎn)連接矩陣,連接矩陣為N*N方陣,N為所有兩跳鄰居節(jié)點(diǎn)的數(shù)量。,其中Wij表示節(jié)點(diǎn)i與節(jié)點(diǎn)j的信號(hào)連接強(qiáng)度,0為無(wú)連接; 步驟(2.)單個(gè)節(jié)點(diǎn)在表初始化完成之后,按照以下步驟參與分簇的形成 步驟(2.1)節(jié)點(diǎn)啟動(dòng)后向周?chē)鷥商従庸?jié)點(diǎn)發(fā)送包含行駛方向信息的Hello報(bào)文,同向行駛鄰居節(jié)點(diǎn)回應(yīng)報(bào)文,包含鏈路以及本節(jié)點(diǎn)的狀態(tài)。若發(fā)現(xiàn)兩跳內(nèi)節(jié)點(diǎn)有已經(jīng)存在的簇首節(jié)點(diǎn),則聲明加入此群,等待確認(rèn);若收到臨時(shí)簇首聲明,則進(jìn)入步驟(2.2);如果既沒(méi)有發(fā)現(xiàn)簇首節(jié)點(diǎn)也沒(méi)有收到臨時(shí)簇首聲明則跳入步驟(2.3)。
步驟(2.2)將本節(jié)點(diǎn)的一跳鄰居表發(fā)給臨時(shí)簇首節(jié)點(diǎn)。
步驟(2.3)向本節(jié)點(diǎn)兩跳范圍內(nèi)的節(jié)點(diǎn)發(fā)出臨時(shí)簇首聲明,收到聲明的節(jié)點(diǎn)進(jìn)行步驟(2.2)操作。
步驟(2.4)臨時(shí)簇首節(jié)點(diǎn)將收到的各個(gè)節(jié)點(diǎn)的一跳鄰居連接信息匯總為包含簇內(nèi)所有節(jié)點(diǎn)的一跳鄰居節(jié)點(diǎn)連接矩陣,并按照下述方法進(jìn)行簇首選擇通過(guò)對(duì)一跳鄰居節(jié)點(diǎn)連接矩陣進(jìn)行平方運(yùn)算求出兩跳鄰居節(jié)點(diǎn)連接矩陣,矩陣每一行的元素之和就是此行所對(duì)應(yīng)節(jié)點(diǎn)的帶權(quán)連接度,計(jì)算出帶權(quán)連接度之后選取連接度最大的節(jié)點(diǎn)為簇首節(jié)點(diǎn),并將選舉結(jié)果進(jìn)行廣播,收到廣播信息的節(jié)點(diǎn)判斷自己是否是簇首節(jié)點(diǎn),不是則向簇首節(jié)點(diǎn)發(fā)出注冊(cè)申請(qǐng),收到回復(fù)信息則成功加入群,當(dāng)此節(jié)點(diǎn)已經(jīng)是其他群的群成員,則收到廣播信息后將自己注冊(cè)為網(wǎng)關(guān)節(jié)點(diǎn),并向鄰居節(jié)點(diǎn)以及關(guān)聯(lián)簇首節(jié)點(diǎn)發(fā)送狀態(tài)信息;最后簇首節(jié)點(diǎn)生成簇成員表,并廣播給簇內(nèi)成員。分簇過(guò)程完畢。
步驟(3.)在分簇過(guò)程完成之后,簇內(nèi)節(jié)點(diǎn)進(jìn)入分簇維護(hù)階段,分簇維護(hù)過(guò)程包含新節(jié)點(diǎn)加入、節(jié)點(diǎn)離開(kāi)、簇首更迭,網(wǎng)關(guān)節(jié)點(diǎn)的注冊(cè)與注銷(xiāo)等過(guò)程,維護(hù)過(guò)程按照以下步驟進(jìn)行 步驟(3.1)未加入任何簇的節(jié)點(diǎn)首先等待兩秒,如果兩秒內(nèi)收到來(lái)自其它簇首的Hello信息,則判斷自己是否已經(jīng)是任一簇的簇成員節(jié)點(diǎn),如果是,則觸發(fā)申請(qǐng)過(guò)程向此簇申請(qǐng)成為網(wǎng)關(guān)節(jié)點(diǎn),如果自己未加入任何簇,則申請(qǐng)為此簇的普通成員節(jié)點(diǎn);當(dāng)兩秒內(nèi)節(jié)點(diǎn)沒(méi)有收到任何簇首的Hello信息,則此節(jié)點(diǎn)向周?chē)?jié)點(diǎn)廣播請(qǐng)求加入信息,信息中包含節(jié)點(diǎn)ID,行駛方向信息等,并設(shè)置此廣播的跳數(shù)為兩跳,收到廣播信息的一般節(jié)點(diǎn)以及網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)轉(zhuǎn)發(fā)消息,收到廣播信息的簇首節(jié)點(diǎn)則判斷請(qǐng)求加入信息中的行駛方向信息,若與本簇行駛方向相同,則返回確認(rèn)信息,將此節(jié)點(diǎn)加入本簇,并將相關(guān)信息保存到分簇信息表中,隨后將更新后的分簇信息表進(jìn)行廣播,簇內(nèi)其它成員收到廣播信息后更新自己的分簇信息表相關(guān)內(nèi)容;若與本簇行駛方向不同,則忽略收到的請(qǐng)求。
步驟(3.2)當(dāng)簇成員節(jié)點(diǎn)離開(kāi)群內(nèi)任何節(jié)點(diǎn)的通信范圍,或發(fā)生有效路由請(qǐng)求但未能達(dá)到的情況下,簇首節(jié)點(diǎn)將與此節(jié)點(diǎn)相關(guān)的狀態(tài)信息及請(qǐng)求信息暫存30秒,若30秒內(nèi)仍無(wú)法探測(cè)到目標(biāo)節(jié)點(diǎn)再次出現(xiàn),則宣布此成員離開(kāi)本簇,并在分簇信息表中刪除此節(jié)點(diǎn)信息,啟動(dòng)分簇信息表廣播更新過(guò)程;若30秒內(nèi)收到探測(cè)到目標(biāo)節(jié)點(diǎn)再次出現(xiàn),則維持原有分簇信息; 步驟(3.3)當(dāng)簇首節(jié)點(diǎn)的連接權(quán)值下降到簇內(nèi)連接權(quán)值最高的節(jié)點(diǎn)的1/3時(shí),啟動(dòng)簇首節(jié)點(diǎn)更迭過(guò)程,原簇首節(jié)點(diǎn)放棄簇首的位置,簇內(nèi)連接權(quán)值最高的節(jié)點(diǎn)聲明自己為簇首節(jié)點(diǎn),并啟動(dòng)分簇路由信息表更新過(guò)程; 步驟(3.4)當(dāng)兩個(gè)同向移動(dòng)的簇中的簇首節(jié)點(diǎn)移動(dòng)到彼此一跳通信范圍之內(nèi)時(shí),比較兩個(gè)分簇的大小,簇成員數(shù)較小的節(jié)點(diǎn)放棄簇首資格,簇成員數(shù)較大的節(jié)點(diǎn)繼續(xù)保持簇首資格,原有的兩個(gè)簇間的網(wǎng)關(guān)節(jié)點(diǎn)更迭身份為現(xiàn)有簇的普通成員節(jié)點(diǎn),已經(jīng)注銷(xiāo)的簇中的原有成員節(jié)點(diǎn),如果在現(xiàn)存簇首節(jié)點(diǎn)的兩跳通信范圍之內(nèi),則聲明自己為現(xiàn)存簇的成員節(jié)點(diǎn),其他節(jié)點(diǎn)則重新開(kāi)始分簇過(guò)程; 步驟(3.5)當(dāng)兩個(gè)簇之間的所有網(wǎng)關(guān)節(jié)點(diǎn)均與某一簇首失去聯(lián)系時(shí),兩個(gè)簇的簇首節(jié)點(diǎn)宣布解除鄰居簇關(guān)系。
本發(fā)明針對(duì)實(shí)際道路中的汽車(chē)行駛特性進(jìn)行分簇算法的設(shè)計(jì),充分考慮了車(chē)載Ad hoc網(wǎng)絡(luò)的特點(diǎn),并利用節(jié)點(diǎn)連接強(qiáng)度的信息進(jìn)行輔助分簇,分簇流程簡(jiǎn)單,節(jié)點(diǎn)計(jì)算負(fù)擔(dān)小,算法為半分布式算法且復(fù)雜度??;采用本發(fā)明進(jìn)行分簇,簇結(jié)構(gòu)穩(wěn)定,節(jié)點(diǎn)更迭次數(shù)少,能夠有效的減少分簇中產(chǎn)生的控制信息,提高網(wǎng)絡(luò)的性能,解決了車(chē)載Ad hoc網(wǎng)絡(luò)在實(shí)際環(huán)境中的性能低下的問(wèn)題。
圖1.考慮汽車(chē)行駛方向信息的分簇策略示意圖,數(shù)字1到4標(biāo)識(shí)的圓圈表示四組不同行駛方向的車(chē)輛,兩個(gè)黑色曲線(xiàn)標(biāo)識(shí)的圓形區(qū)域之內(nèi)的標(biāo)識(shí)為1的節(jié)點(diǎn)分別為兩個(gè)簇內(nèi)的普通節(jié)點(diǎn)或簇首節(jié)點(diǎn),兩個(gè)圓域相交的區(qū)域內(nèi)的表示為1的節(jié)點(diǎn)為網(wǎng)關(guān)節(jié)點(diǎn)。; 圖2.分簇形成階段的算法流程圖; 圖3.節(jié)點(diǎn)離開(kāi)簇的處理流程圖; 圖4.簇首節(jié)點(diǎn)沖突的處理流程圖;
具體實(shí)施例方式 應(yīng)用于Ad hoc網(wǎng)絡(luò)的傳統(tǒng)分簇算法種類(lèi)繁多,但大都沒(méi)有考慮分簇算法的具體應(yīng)用場(chǎng)合。首先,在實(shí)際道路環(huán)境下,由于車(chē)輛移動(dòng)性強(qiáng),不同行駛方向的車(chē)輛間相對(duì)移動(dòng)速度很大,如果采用傳統(tǒng)的分簇策略,必然會(huì)造成分簇結(jié)構(gòu)無(wú)法穩(wěn)定、簇首節(jié)點(diǎn)頻繁更新的問(wèn)題,使得網(wǎng)絡(luò)中控制信息占據(jù)大量帶寬資源,系統(tǒng)健壯性下降,網(wǎng)絡(luò)性能?chē)?yán)重降低。其次,傳統(tǒng)分簇方法未考慮節(jié)點(diǎn)之間信號(hào)強(qiáng)度,從而可能導(dǎo)致采用此方法選舉出的群首以及網(wǎng)關(guān)節(jié)點(diǎn)并不具備很好的通信能力以及穩(wěn)定性,而因此帶來(lái)的群首和網(wǎng)關(guān)節(jié)點(diǎn)的頻繁更新,同樣會(huì)對(duì)網(wǎng)絡(luò)性能帶來(lái)極大影響。設(shè)計(jì)一種考慮實(shí)際道路環(huán)境以及汽車(chē)行駛方向信息以及終端間信號(hào)連接強(qiáng)度的車(chē)載Ad hoc分簇算法是本發(fā)明的主要貢獻(xiàn)。
考慮汽車(chē)行駛方向信息的分簇策略示意圖見(jiàn)圖1該圖可以清楚的表明當(dāng)汽車(chē)向不同的方向行駛時(shí)本分簇策略的特點(diǎn),圖中,四組不同行駛方向的車(chē)輛用數(shù)字1到4標(biāo)識(shí)的圓圈表示,圓圈旁的箭頭表示節(jié)點(diǎn)的運(yùn)動(dòng)方向,當(dāng)分簇形成階段開(kāi)始時(shí),一跳通信范圍之內(nèi)的車(chē)輛首先交換彼此的行駛方向信息,不同方向的車(chē)輛不參與彼此的分簇過(guò)程,圖中兩個(gè)黑色曲線(xiàn)標(biāo)識(shí)的圓形區(qū)域之內(nèi)的標(biāo)識(shí)為1的節(jié)點(diǎn)分別為兩個(gè)簇內(nèi)的普通節(jié)點(diǎn)或簇首節(jié)點(diǎn),兩個(gè)圓域相交的區(qū)域內(nèi)的表示為1的節(jié)點(diǎn)為網(wǎng)關(guān)節(jié)點(diǎn)。同簇車(chē)輛通信不通過(guò)簇首和網(wǎng)關(guān)節(jié)點(diǎn),當(dāng)簇內(nèi)節(jié)點(diǎn)需要與簇外節(jié)點(diǎn)進(jìn)行通信時(shí),根據(jù)簇成員表和路由表的信息,通過(guò)網(wǎng)關(guān)節(jié)點(diǎn)與其他簇的簇成員進(jìn)行通信。
在本發(fā)明的描述中,分簇策略劃分為分簇形成過(guò)程和分簇維護(hù)過(guò)程兩部分,其一是由步驟(2.)完成的節(jié)點(diǎn)初始化與分簇形成過(guò)程。其主要思想是當(dāng)節(jié)點(diǎn)初始化完成之后,首先等待兩秒,如果兩秒內(nèi)收到來(lái)自其它簇首的Hello信息,則判斷自己是否已經(jīng)是任一簇的簇成員節(jié)點(diǎn),如果是,則觸發(fā)申請(qǐng)過(guò)程向此簇申請(qǐng)成為網(wǎng)關(guān)節(jié)點(diǎn),如果自己未加入任何簇,則申請(qǐng)為此簇的普通成員節(jié)點(diǎn);當(dāng)兩秒內(nèi)節(jié)點(diǎn)沒(méi)有收到任何簇首的Hello信息,分簇過(guò)程被觸發(fā),首先判斷兩跳以?xún)?nèi)有沒(méi)有臨時(shí)簇首節(jié)點(diǎn),如果沒(méi)有則聲明自己為臨時(shí)簇首節(jié)點(diǎn),臨時(shí)簇首節(jié)點(diǎn)根據(jù)收到的各個(gè)節(jié)點(diǎn)的一跳鄰居表匯總為包含簇內(nèi)所有節(jié)點(diǎn)的一跳連接矩陣A
其中aij表示節(jié)點(diǎn)i與節(jié)點(diǎn)j的信號(hào)連接強(qiáng)度。通過(guò)對(duì)一步連接矩陣進(jìn)行平方運(yùn)算求出二跳連接矩陣B
其中wij表示節(jié)點(diǎn)i與節(jié)點(diǎn)之間的二跳信號(hào)連接強(qiáng)度。矩陣B中每一行的元素之和就是此行所對(duì)應(yīng)節(jié)點(diǎn)的帶權(quán)連接度Wi,計(jì)算公式如下所示 計(jì)算出帶權(quán)連接度之后選取連接度最大的節(jié)點(diǎn)為簇首節(jié)點(diǎn),并將選舉結(jié)果進(jìn)行廣播。參與此分簇的其他節(jié)點(diǎn)根據(jù)收到的分簇結(jié)果來(lái)確定自己的角色,如果被選舉為簇首節(jié)點(diǎn),則等待其他節(jié)點(diǎn)的申請(qǐng),并回復(fù)注冊(cè)信息,如果普通成員節(jié)點(diǎn)或網(wǎng)關(guān)節(jié)點(diǎn),則分別向簇首節(jié)點(diǎn)進(jìn)行注冊(cè)。
其二是由步驟(3)完成的分簇維護(hù)過(guò)程。分簇維護(hù)階段可劃分為幾種不同的情況進(jìn)行處理第一種情況是當(dāng)簇首發(fā)現(xiàn)有任一節(jié)點(diǎn)與其斷開(kāi)兩跳連接且路由請(qǐng)求無(wú)法到達(dá)時(shí),便觸發(fā)節(jié)點(diǎn)離開(kāi)的維護(hù)處理程序,首先設(shè)置30秒的緩沖期,如果30秒內(nèi)節(jié)點(diǎn)重新回到簇首控制范圍內(nèi),則只是更新和此節(jié)點(diǎn)相關(guān)的路由信息即可,若30秒內(nèi)無(wú)法重新發(fā)現(xiàn)此節(jié)點(diǎn),則宣布節(jié)點(diǎn)離開(kāi)簇,并根據(jù)節(jié)點(diǎn)類(lèi)型的不同進(jìn)行相應(yīng)的簇成員表的更新;第二種情況的觸發(fā)條件是當(dāng)簇首發(fā)現(xiàn)當(dāng)簇首節(jié)點(diǎn)的連接權(quán)值下降到群內(nèi)連接權(quán)值最高的節(jié)點(diǎn)的1/3時(shí),滿(mǎn)足此條件則觸發(fā)簇首節(jié)點(diǎn)更迭過(guò)程,原簇首節(jié)點(diǎn)放棄簇首的位置,簇內(nèi)連接權(quán)值最高的節(jié)點(diǎn)聲明自己為簇首節(jié)點(diǎn),并啟動(dòng)分簇路由信息表更新過(guò)程;第三種情況是當(dāng)兩個(gè)同向移動(dòng)的簇中的簇首節(jié)點(diǎn)移動(dòng)到彼此一跳通信范圍之內(nèi)時(shí),比較兩個(gè)分簇的大小,簇成員數(shù)較小的節(jié)點(diǎn)放棄簇首資格,簇成員數(shù)較大的節(jié)點(diǎn)繼續(xù)保持簇首資格,原有的兩個(gè)簇間的網(wǎng)關(guān)節(jié)點(diǎn)更迭身份為現(xiàn)有簇的普通成員節(jié)點(diǎn),已經(jīng)注銷(xiāo)的簇中的原有成員節(jié)點(diǎn),如果在現(xiàn)存簇首節(jié)點(diǎn)的兩跳通信范圍之內(nèi),則聲明自己為現(xiàn)存簇的成員節(jié)點(diǎn),其他節(jié)點(diǎn)則重新開(kāi)始分簇過(guò)程。
權(quán)利要求
1.一種基于信號(hào)強(qiáng)度的車(chē)載Ad hoc網(wǎng)絡(luò)分簇方法,其特征在于該方法是基于車(chē)載Adhoc網(wǎng)絡(luò)的實(shí)際特點(diǎn)考慮汽車(chē)行駛方向信息并利用信號(hào)強(qiáng)度為權(quán)值進(jìn)行分簇以及簇的維護(hù)過(guò)程的,本方法含有以下步驟
步驟(1.)節(jié)點(diǎn)初始化在每個(gè)節(jié)點(diǎn)中建立一跳鄰居表,記錄節(jié)點(diǎn)與所有一跳鄰居節(jié)點(diǎn)的鏈接關(guān)系信息,鏈接關(guān)系信息包括鄰居節(jié)點(diǎn)ID,本節(jié)點(diǎn)與鄰居節(jié)點(diǎn)連接信號(hào)強(qiáng)度;建立分簇信息表,分簇信息表中包括簇內(nèi)節(jié)點(diǎn)ID、節(jié)點(diǎn)類(lèi)型、優(yōu)先級(jí)、連接跳數(shù)信息;在臨時(shí)簇首節(jié)點(diǎn)中建立兩跳鄰居節(jié)點(diǎn)連接矩陣,連接矩陣為N*N方陣,N為所有兩跳鄰居節(jié)點(diǎn)的數(shù)量,連接矩陣元素記為Wij,Wij表示節(jié)點(diǎn)i與節(jié)點(diǎn)j的信號(hào)連接強(qiáng)度,Wij值為0表示無(wú)連接;
步驟(2.)單個(gè)節(jié)點(diǎn)在表初始化完成之后,按照以下步驟參與分簇的形成
步驟(2.1)節(jié)點(diǎn)啟動(dòng)后向周?chē)鷥商従庸?jié)點(diǎn)發(fā)送包含行駛方向信息的Hello報(bào)文,同向行駛鄰居節(jié)點(diǎn)回應(yīng)報(bào)文,包含鏈路以及本節(jié)點(diǎn)的狀態(tài),當(dāng)發(fā)現(xiàn)兩跳內(nèi)節(jié)點(diǎn)有已經(jīng)存在的簇首節(jié)點(diǎn)時(shí),則聲明加入此群,等待確認(rèn);當(dāng)收到臨時(shí)簇首聲明時(shí),則進(jìn)入步驟(2.2);既沒(méi)有發(fā)現(xiàn)簇首節(jié)點(diǎn)也沒(méi)有收到臨時(shí)簇首聲明,則跳入步驟(2.3);
步驟(2.2)將本節(jié)點(diǎn)的一跳鄰居表發(fā)給臨時(shí)簇首節(jié)點(diǎn),進(jìn)入步驟(2.4);
步驟(2.3)向本節(jié)點(diǎn)兩跳范圍內(nèi)的節(jié)點(diǎn)發(fā)出臨時(shí)簇首聲明,收到聲明的節(jié)點(diǎn)進(jìn)行步驟(2.2)操作;
步驟(2.4)臨時(shí)簇首節(jié)點(diǎn)將收到的各個(gè)節(jié)點(diǎn)的一跳鄰居連接信息匯總為包含簇內(nèi)所有節(jié)點(diǎn)的一跳連接矩陣,并按照下述方法進(jìn)行簇首選擇通過(guò)對(duì)一跳連接矩陣進(jìn)行平方運(yùn)算求出二跳連接矩陣,矩陣每一行的元素之和就是此行所對(duì)應(yīng)節(jié)點(diǎn)的帶權(quán)連接度,計(jì)算出帶權(quán)連接度之后選取連接度最大的節(jié)點(diǎn)為簇首節(jié)點(diǎn),并將選舉結(jié)果進(jìn)行廣播,收到廣播信息的節(jié)點(diǎn)判斷自己是否是簇首節(jié)點(diǎn),不是則向簇首節(jié)點(diǎn)發(fā)出注冊(cè)申請(qǐng),收到回復(fù)信息則成功加入群,當(dāng)此節(jié)點(diǎn)已經(jīng)是其他群的群成員,則收到廣播信息后將自己注冊(cè)為網(wǎng)關(guān)節(jié)點(diǎn),并向鄰居節(jié)點(diǎn)以及關(guān)聯(lián)簇首節(jié)點(diǎn)發(fā)送狀態(tài)信息;最后簇首節(jié)點(diǎn)生成簇成員表,并廣播給簇內(nèi)成員,分簇過(guò)程完畢;
步驟(3.)在分簇過(guò)程完成之后,簇內(nèi)節(jié)點(diǎn)進(jìn)入分簇維護(hù)階段,分簇維護(hù)過(guò)程包含新節(jié)點(diǎn)加入、節(jié)點(diǎn)離開(kāi)、簇首更迭,網(wǎng)關(guān)節(jié)點(diǎn)的注冊(cè)與注銷(xiāo)過(guò)程,維護(hù)過(guò)程按照以下步驟進(jìn)行
步驟(3.1)未加入任何簇的節(jié)點(diǎn)首先等待兩秒,當(dāng)兩秒內(nèi)收到來(lái)自其它簇首的Hello信息,則判斷自己是否已經(jīng)是任一簇的簇成員節(jié)點(diǎn)是,則觸發(fā)申請(qǐng)過(guò)程向此簇申請(qǐng)成為網(wǎng)關(guān)節(jié)點(diǎn);當(dāng)自己未加入任何簇,則申請(qǐng)為此簇的普通成員節(jié)點(diǎn);當(dāng)兩秒內(nèi)節(jié)點(diǎn)沒(méi)有收到任何簇首的Hello信息,則此節(jié)點(diǎn)向周?chē)?jié)點(diǎn)廣播請(qǐng)求加入信息,信息中包含節(jié)點(diǎn)ID、行駛方向信息,并設(shè)置此廣播的跳數(shù)為兩跳,收到廣播信息的一般節(jié)點(diǎn)以及網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)轉(zhuǎn)發(fā)消息,收到廣播信息的簇首節(jié)點(diǎn)則判斷請(qǐng)求加入信息中的行駛方向信息,當(dāng)與本簇行駛方向相同,則返回確認(rèn)信息,將此節(jié)點(diǎn)加入本簇,并將相關(guān)信息保存到分簇信息表中,隨后將更新后的分簇信息表進(jìn)行廣播,簇內(nèi)其它成員收到廣播信息后更新自己的分簇信息表相關(guān)內(nèi)容;當(dāng)與本簇行駛方向不同,則忽略收到的請(qǐng)求;
步驟(3.2)當(dāng)簇成員節(jié)點(diǎn)離開(kāi)群內(nèi)任何節(jié)點(diǎn)的通信范圍,或發(fā)生有效路由請(qǐng)求但未能達(dá)到的情況下,簇首節(jié)點(diǎn)將與此節(jié)點(diǎn)相關(guān)的狀態(tài)信息及請(qǐng)求信息暫存30秒,在30秒內(nèi)仍無(wú)法探測(cè)到目標(biāo)節(jié)點(diǎn)再次出現(xiàn),則宣布此成員離開(kāi)本簇,并在分簇信息表中刪除此節(jié)點(diǎn)信息,啟動(dòng)分簇信息表廣播更新過(guò)程;當(dāng)30秒內(nèi)收到探測(cè)到目標(biāo)節(jié)點(diǎn)再次出現(xiàn),則維持原有分簇信息;
步驟(3.3)當(dāng)簇首節(jié)點(diǎn)的連接權(quán)值下降到簇內(nèi)連接權(quán)值最高的節(jié)點(diǎn)的1/3時(shí),啟動(dòng)簇首節(jié)點(diǎn)更迭過(guò)程,原簇首節(jié)點(diǎn)放棄簇首的位置,簇內(nèi)連接權(quán)值最高的節(jié)點(diǎn)聲明自己為簇首節(jié)點(diǎn),并啟動(dòng)分簇路由信息表更新過(guò)程;
步驟(3.4)當(dāng)兩個(gè)同向移動(dòng)的簇中的簇首節(jié)點(diǎn)移動(dòng)到彼此一跳通信范圍之內(nèi)時(shí),比較兩個(gè)分簇的大小,簇成員數(shù)較小的節(jié)點(diǎn)放棄簇首資格,簇成員數(shù)較大的節(jié)點(diǎn)繼續(xù)保持簇首資格,原有的兩個(gè)簇間的網(wǎng)關(guān)節(jié)點(diǎn)更迭身份為現(xiàn)有簇的普通成員節(jié)點(diǎn),已經(jīng)注銷(xiāo)的簇中的原有成員節(jié)點(diǎn),當(dāng)在現(xiàn)存簇首節(jié)點(diǎn)的兩跳通信范圍之內(nèi),則聲明自己為現(xiàn)存簇的成員節(jié)點(diǎn),其他節(jié)點(diǎn)則重新開(kāi)始分簇過(guò)程;
步驟(3.5)當(dāng)兩個(gè)簇之間的所有網(wǎng)關(guān)節(jié)點(diǎn)均與某一簇首失去聯(lián)系時(shí),兩個(gè)簇的簇首節(jié)點(diǎn)宣布解除鄰居簇關(guān)系。
全文摘要
本發(fā)明公開(kāi)了一種基于信號(hào)強(qiáng)度的車(chē)載Ad hoc網(wǎng)絡(luò)分簇方法,提供一種從汽車(chē)行駛方向信息入手,同向行駛的車(chē)輛間參與同簇的形成和維護(hù)過(guò)程的網(wǎng)絡(luò)分簇和維護(hù)的方法。通過(guò)節(jié)點(diǎn)初始化后,在同向行駛車(chē)輛間建立臨時(shí)簇首,在臨時(shí)簇首的兩跳范圍內(nèi),形成鄰居連接表,節(jié)點(diǎn)連接信號(hào)強(qiáng)度權(quán)值最大的節(jié)點(diǎn)為簇首節(jié)點(diǎn),其余節(jié)點(diǎn)為本簇的普通節(jié)點(diǎn)或網(wǎng)關(guān)節(jié)點(diǎn);維護(hù)過(guò)程基于汽車(chē)的行駛方向信息以及節(jié)點(diǎn)連接強(qiáng)度信號(hào)。本發(fā)明由于考慮了行駛方向信息以及節(jié)點(diǎn)連接信號(hào)強(qiáng)度,所以在城市交通環(huán)境下車(chē)載Ad hoc網(wǎng)絡(luò)分簇結(jié)構(gòu)相對(duì)其他方法要穩(wěn)定,節(jié)點(diǎn)更迭次數(shù)以及與分簇相關(guān)的控制信息數(shù)量少,本發(fā)明解決了城市交通環(huán)境下車(chē)載Ad hoc網(wǎng)絡(luò)性能低下、延長(zhǎng)簇的壽命、改善了網(wǎng)絡(luò)狀態(tài)。
文檔編號(hào)H04L12/56GK101207572SQ200710179578
公開(kāi)日2008年6月25日 申請(qǐng)日期2007年12月14日 優(yōu)先權(quán)日2007年12月14日
發(fā)明者安建偉, 米振強(qiáng), 揚(yáng) 楊, 周賢偉, 楊裕亮 申請(qǐng)人:北京科技大學(xué)