無線自組網(wǎng)系統(tǒng)及其路由方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無線通信領(lǐng)域,尤其涉及無線自組網(wǎng)系統(tǒng)及其路由方法。
【背景技術(shù)】
[0002] 路由技術(shù)是自組網(wǎng)網(wǎng)絡(luò)非常關(guān)鍵的技術(shù),對數(shù)據(jù)轉(zhuǎn)發(fā)的效率、時延W及整個系統(tǒng) 的性能都非常重要。常見的路由技術(shù)包括AODV(Ad hoc化Demand Distance Vector)、 DSR (Dynamic Source Routing)、DSDV (Destination Sequenced Distance Vector)、 0LSR(0ptimized Link State Routing)等,其中AODV和DSR為按需路由,當(dāng)有數(shù)據(jù)發(fā)送請 求且查詢路由表沒有路由的時候會發(fā)起路由請求,路由開銷較小,但是業(yè)務(wù)建立時延較長; DSDV和化SR是主動路由,節(jié)點(diǎn)需要周期性的廣播路由消息,W便能夠使各個節(jié)點(diǎn)維護(hù)自身 的路由表,當(dāng)有業(yè)務(wù)請求時可直接查詢路由表進(jìn)行發(fā)送,具有的較短的業(yè)務(wù)建立時延,但是 路由的開銷比較大。
[0003] 常見的路由算法中主動路由算法通常都是需要每個節(jié)點(diǎn)周期性的廣播自身的路 由信息,或者選擇部分中轉(zhuǎn)節(jié)點(diǎn)周期性的轉(zhuǎn)發(fā)全網(wǎng)路由消息,送樣會導(dǎo)致網(wǎng)絡(luò)中有大量的 路由消息在傳遞,占用較多的空口開銷;而按需路由算法通常是在有業(yè)務(wù)請求時發(fā)送路由 請求,源節(jié)點(diǎn)發(fā)送洪泛的路由請求消息,相對主動路由算法,具有較小的開銷,但是也導(dǎo)致 建鏈時延的增加。因此路由算法通常是在開銷和建鏈速度上進(jìn)行折中。
[0004] W上的路由算法沒有利用自組網(wǎng)自身特點(diǎn),只是單純的路由算法,實(shí)際的自組網(wǎng) 中可利用自組網(wǎng)本身的特點(diǎn)對路由算法進(jìn)行跨層優(yōu)化,會達(dá)到更優(yōu)的性能。
【發(fā)明內(nèi)容】
[0005] 為克服W上問題,本發(fā)明提出一種無線自組網(wǎng)系統(tǒng),所述系統(tǒng)的各節(jié)點(diǎn)互相廣播 其鄰節(jié)點(diǎn)信息,根據(jù)接收到的鄰節(jié)點(diǎn)的廣播消息維護(hù)本地路由表;所述各節(jié)點(diǎn)根據(jù)收到的 廣播消息選擇和維護(hù)自己的中轉(zhuǎn)節(jié)點(diǎn),并通知所述中轉(zhuǎn)節(jié)點(diǎn);路由消息由所述中轉(zhuǎn)節(jié)點(diǎn)轉(zhuǎn) 發(fā)。
[0006] 優(yōu)選的,所述本地路由表包括本節(jié)點(diǎn)的一跳節(jié)點(diǎn)和二跳節(jié)點(diǎn)信息。
[0007] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的連接度,所述連接度為該一跳節(jié)點(diǎn)在集合Sl W外的對稱節(jié)點(diǎn)個數(shù);查找Sl中為 S2中的節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從 S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn)厘新Sl中各節(jié)點(diǎn)的連接度;如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇 結(jié)束;否則,查找Sl中連接度最大的節(jié)點(diǎn),選入S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2中刪除 選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;直至S2為空。
[0008] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的連接度,所述連接度為該一跳節(jié)點(diǎn)在集合Sl W外的對稱節(jié)點(diǎn)個數(shù);計(jì)算Sl中各節(jié) 點(diǎn)的鏈路度量,所述鏈路度量為節(jié)點(diǎn)與各一跳節(jié)點(diǎn)之間鏈路的度量值;查找SI中為S2中的 節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2中刪 除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇結(jié)束; 否則,查找Sl中鏈路度量最大的節(jié)點(diǎn),將其中連接度最大的節(jié)點(diǎn)選入S3,從Sl中刪除選中 的節(jié)點(diǎn),從S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;直至S2為空;或者, 查找Sl中連接度最大的節(jié)點(diǎn),將其中鏈路度量最大的節(jié)點(diǎn)選入S3,從Sl中刪除選中的節(jié) 點(diǎn),從S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn)厘新Sl中各節(jié)點(diǎn)的連接度追至S2為空。
[0009] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的鏈路度量,所述鏈路度量為節(jié)點(diǎn)與各一跳節(jié)點(diǎn)之間鏈路的度量值;查找Sl中為S2 中的節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2 中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇結(jié)束;否則,查找Sl中鏈路度 量最大的節(jié)點(diǎn),選入S3,從Sl中刪除該選中的節(jié)點(diǎn),從S2中刪除其可達(dá)的節(jié)點(diǎn);直至S2為 空。
[0010] 優(yōu)選的,所述系統(tǒng)的各節(jié)點(diǎn)如與兩跳或一跳節(jié)點(diǎn)進(jìn)行通信,則直接根據(jù)本地路由 表進(jìn)行路由。
[0011] 優(yōu)選的,所述系統(tǒng)的各節(jié)點(diǎn)如與兩跳W上節(jié)點(diǎn)進(jìn)行通信,則進(jìn)行按需路由查找。
[0012] 基于相同的構(gòu)思,本發(fā)明還提出一種無線自組網(wǎng)的路由方法,所述自組網(wǎng)的各節(jié) 點(diǎn)互相廣播其鄰節(jié)點(diǎn)信息,根據(jù)接收到的鄰節(jié)點(diǎn)的廣播消息維護(hù)本地路由表;所述各節(jié)點(diǎn) 根據(jù)收到的廣播消息選擇和維護(hù)自己的中轉(zhuǎn)節(jié)點(diǎn),并通知所述中轉(zhuǎn)節(jié)點(diǎn);路由消息由所述 中轉(zhuǎn)節(jié)點(diǎn)轉(zhuǎn)發(fā)。
[0013] 優(yōu)選的,所述本地路由表包括本節(jié)點(diǎn)的一跳節(jié)點(diǎn)和二跳節(jié)點(diǎn)信息。
[0014] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的連接度,所述連接度為該一跳節(jié)點(diǎn)在集合Sl W外的對稱節(jié)點(diǎn)個數(shù);查找Sl中為 S2中的節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從 S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn)厘新Sl中各節(jié)點(diǎn)的連接度;如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇 結(jié)束;否則,查找Sl中連接度最大的節(jié)點(diǎn),選入S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2中刪除 選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;直至S2為空。
[0015] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的連接度,所述連接度為該一跳節(jié)點(diǎn)在集合Sl W外的對稱節(jié)點(diǎn)個數(shù);計(jì)算Sl中各節(jié) 點(diǎn)的鏈路度量,所述鏈路度量為節(jié)點(diǎn)與各一跳節(jié)點(diǎn)之間鏈路的度量值;查找Sl中為S2中的 節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2中刪 除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇結(jié)束; 否則,查找Sl中鏈路度量最大的節(jié)點(diǎn),將其中連接度最大的節(jié)點(diǎn)選入S3,從Sl中刪除選中 的節(jié)點(diǎn),從S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);更新Sl中各節(jié)點(diǎn)的連接度;直至S2為空;或者, 查找Sl中連接度最大的節(jié)點(diǎn),將其中鏈路度量最大的節(jié)點(diǎn)選入S3,從Sl中刪除選中的節(jié) 點(diǎn),從S2中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn)厘新Sl中各節(jié)點(diǎn)的連接度追至S2為空。
[0016] 優(yōu)選的,所述中轉(zhuǎn)節(jié)點(diǎn)的選擇和維護(hù)包括:設(shè)節(jié)點(diǎn)的一跳節(jié)點(diǎn)集合為SI,二跳節(jié) 點(diǎn)集合為S2,中轉(zhuǎn)節(jié)點(diǎn)結(jié)合為S3,其中,S2中不包含該節(jié)點(diǎn)本身和其一跳節(jié)點(diǎn);計(jì)算Sl中 各節(jié)點(diǎn)的鏈路度量,所述鏈路度量為節(jié)點(diǎn)與各一跳節(jié)點(diǎn)之間鏈路的度量值;查找Sl中為S2 中的節(jié)點(diǎn)提供唯一可達(dá)路徑的節(jié)點(diǎn),選入中轉(zhuǎn)節(jié)點(diǎn)集合S3 ;從Sl中刪除選中的節(jié)點(diǎn),從S2 中刪除選中節(jié)點(diǎn)可達(dá)的節(jié)點(diǎn);如果S2為空,則中轉(zhuǎn)節(jié)點(diǎn)選擇結(jié)束;否則,查找Sl中鏈路度 量最大的節(jié)點(diǎn),選入S3,從Sl中刪除該選中的節(jié)點(diǎn),從S2中刪除其可達(dá)的節(jié)點(diǎn);直至S2為 空。
[0017] 優(yōu)選的,所述各節(jié)點(diǎn)如與兩跳或一跳節(jié)點(diǎn)進(jìn)行通信,則直接根據(jù)本地路由表進(jìn)行 路由