本發(fā)明設(shè)計了一種車載網(wǎng)絡(luò)中基于道路拓撲結(jié)構(gòu)的地理信息路由方法,屬于通信技術(shù)領(lǐng)域。
背景技術(shù):
車載自組織網(wǎng)絡(luò)(vanet)作為移動自組織網(wǎng)絡(luò)(manet)的一個研究方向,在智能交通系統(tǒng)(its)中有著重要的應(yīng)用。vanet將車輛節(jié)點與道路基礎(chǔ)設(shè)施作為網(wǎng)絡(luò)節(jié)點,主要實現(xiàn)車輛間通信(v2v,vehicle-to-vehiclecommunication)和車輛與路邊設(shè)施之間的通信(v2i,vehicle-to-infrastructurecommunication),構(gòu)成了實時通信的移動網(wǎng)絡(luò),提高了交通的安全性和管理效率,同時也為車輛駕駛提供了更多的服務(wù)。由于車輛的高移動型,vanet具有網(wǎng)絡(luò)拓撲頻繁變化的特性,一般的manet協(xié)議在vanet場景下,容易產(chǎn)生網(wǎng)絡(luò)中斷,高時延,高丟包率等問題,無法滿足vanet的需求。所以vanet的協(xié)議設(shè)計成為了解決這些問題的研究熱點。
車載網(wǎng)絡(luò)城市場景中,因為建筑物的遮擋,車輛節(jié)點間數(shù)據(jù)的傳輸需要按照道路結(jié)構(gòu)的拓撲來進行發(fā)送,傳統(tǒng)基于地理信息的路由的性能受到影響。在路由選擇時將道路拓撲結(jié)構(gòu)與地理位置信息結(jié)合,可以更有效的使用無線信道資源,具有廣泛的研究與應(yīng)用前景。
技術(shù)實現(xiàn)要素:
技術(shù)問題:本發(fā)明所要解決的技術(shù)問題在于克服傳統(tǒng)路由在vanet中的缺點,提供一種考慮到實際傳輸中的傳輸成功率和節(jié)點的業(yè)務(wù)轉(zhuǎn)發(fā)能力的路由方法,減少無效的轉(zhuǎn)發(fā)次數(shù),提高有限網(wǎng)絡(luò)資源的利用率。
本發(fā)明具體采用以下技術(shù)方案解決上述技術(shù)問題。
技術(shù)方案:本發(fā)明旨在提供車載網(wǎng)絡(luò)中基于道路拓撲結(jié)構(gòu)的地理信息路由方法。該方法包括:
a.確定兩跳內(nèi)可行節(jié)點集合:集合n1(x)表示節(jié)點x一跳內(nèi)的所有鄰居節(jié)點,節(jié)點yi∈n1(x)表示n1(x)中的第i個節(jié)點,集合n2(x)表示節(jié)點x一跳內(nèi)的所有鄰居節(jié)點,節(jié)點x兩跳內(nèi)的鄰節(jié)點zj,節(jié)點zj∈n2(x)表示n2(x)中的第j個節(jié)點。節(jié)點x在控制信道上從n1(x)的節(jié)點中獲取n2(x)中節(jié)點的位置信息和一跳鄰居節(jié)點個數(shù)pr(zj),根據(jù)位置信息計算n2(x)中所有節(jié)點之間鄰居關(guān)系,對于x節(jié)點兩跳內(nèi)的鄰節(jié)點zj,計算pc(zj)表示節(jié)點zj在集合n2(x)中一跳鄰節(jié)點的個數(shù)。節(jié)點x兩跳內(nèi)可行節(jié)點集合m(x)={z|z∈n2(x),pc(z)<pr(zj),dz,d<dx,d},其中dz,d表示節(jié)點z到目的節(jié)點d的距離,dx,d表示節(jié)點x到目的節(jié)點d的距離。
b.選出兩跳內(nèi)的目標(biāo)節(jié)點:定義路口節(jié)點集合c,路口節(jié)點是位于十字路口可以向四個方向發(fā)送數(shù)據(jù)的節(jié)點。節(jié)點x為數(shù)據(jù)流s→d上的節(jié)點,找出節(jié)點j滿足
c.計算路由判據(jù)和進行路由選擇:對于當(dāng)前節(jié)點x與可選下一跳節(jié)點yi∈n1(x),統(tǒng)計在周期時間t內(nèi),節(jié)點x和節(jié)點yi各自一跳鄰域的并集中節(jié)點對于業(yè)務(wù)信道的使用情況,用能夠占用業(yè)務(wù)信道進行發(fā)送的概率
所述步驟b)中的邊緣轉(zhuǎn)發(fā)模式,包括以下步驟:
b-1).節(jié)點a開始轉(zhuǎn)換為邊緣傳輸模式,如果當(dāng)前節(jié)點x比節(jié)點a距離目的節(jié)點d更近,轉(zhuǎn)到b-13),否則按照右手準(zhǔn)則尋找到目的節(jié)點d的可行路徑,轉(zhuǎn)到b-2);
b-2).如果當(dāng)前節(jié)點是路口節(jié)點轉(zhuǎn)到b-3),否則轉(zhuǎn)到b-10);
b-3)判斷該路口節(jié)點周圍是否有未被標(biāo)記的路段,如果存在轉(zhuǎn)到b-4),否則轉(zhuǎn)到b-9);
b-4).嘗試進行貪婪模式,判斷是否能夠在未被標(biāo)記的路段中找到比當(dāng)前節(jié)點距離目的節(jié)點更近的一跳鄰點,如果能找到轉(zhuǎn)b-5),否則轉(zhuǎn)b-8);
b-5).繼續(xù)按照右手準(zhǔn)則,在未被標(biāo)記的路段確定一個路段,在這個路段中尋找一跳內(nèi)的路口節(jié)點,如果能夠找到轉(zhuǎn)b-6),否則轉(zhuǎn)b-7);
b-6).將該路口節(jié)點作為下一跳節(jié)點,轉(zhuǎn)到b-12);
b-7).將該路段內(nèi)距離當(dāng)前路口節(jié)點最遠的點作為下一跳,轉(zhuǎn)到b-12);
b-8).按右手準(zhǔn)則尋找最近的路口節(jié)點,如果能夠找到轉(zhuǎn)到b-11),否則轉(zhuǎn)到b-12);
b-9).將找到的路口節(jié)點作為下一跳節(jié)點,同時將當(dāng)前節(jié)點所在路段在分組中標(biāo)記,轉(zhuǎn)到b-12);
b-10).按右手準(zhǔn)則方向,將當(dāng)前路段中距離最遠的節(jié)點作為下一跳,轉(zhuǎn)到b-12);
b-11).沒有到目的節(jié)點的可行路徑,傳輸結(jié)束;
b-12).繼續(xù)邊緣傳輸模式,分組發(fā)送到下一跳節(jié)點,轉(zhuǎn)到b-11);
b-13).切換到貪婪模式進行下一跳節(jié)點選擇。
有益結(jié)果
本發(fā)明利用了跨層的機制和城市拓撲提出了車載網(wǎng)絡(luò)城市場景中基于道路拓撲結(jié)構(gòu)的地理信息路由方法,利用該方法建立的路由具有最高的轉(zhuǎn)發(fā)效率,可以顯著地改善平均端到端延時、吞吐量、丟包率等網(wǎng)絡(luò)性能。
附圖說明
圖1是路由選擇的流程圖。
圖2是路口節(jié)點示意圖。
具體實施方式
在設(shè)計車載網(wǎng)絡(luò)城市場景中的路由協(xié)議時,因為建筑物的遮擋,車輛節(jié)點間數(shù)據(jù)的傳輸需要按照道路結(jié)構(gòu)的拓撲來進行發(fā)送,傳統(tǒng)基于地理位置的路由算法下一跳節(jié)點時,選擇與目的節(jié)點最近的點進行轉(zhuǎn)發(fā),傳輸性能較差。當(dāng)數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中的空洞時,會進入邊緣傳輸模式,長時間保持邊緣傳輸模式會影響整體的網(wǎng)絡(luò)性能。
為了解決這兩個問題,本發(fā)明提出了一種改進的車載網(wǎng)絡(luò)中基于道路拓撲結(jié)構(gòu)的地理信息路由,算法流程如圖1所示?;诘缆吠負涞牡乩硇畔⒙酚蓞f(xié)議主要針對的是城市場景中因為建筑物的遮擋和道路的移動限制,節(jié)點和節(jié)點之間的傳輸在一定程度上需要按照道路的拓撲結(jié)構(gòu)來進行。將道路方向信息和節(jié)點位置信息綜合考慮,可以更加有效的找出接近目的節(jié)點的下一跳。實現(xiàn)主要分為三個部分,分別是下一跳節(jié)點預(yù)測算法、路由計算和前向節(jié)點選擇和邊緣傳輸模式的改進。
1、下一跳節(jié)點預(yù)測算法
如圖2所示,在城市場景中節(jié)點可以按照拓撲結(jié)構(gòu)分為兩類,圖中節(jié)點a位于十字路口可以向四個方向進行數(shù)據(jù)發(fā)送,我們定義這種位于十字路口并且能夠向四個方向發(fā)送數(shù)的節(jié)點叫做路口節(jié)點,而其余節(jié)點為一般節(jié)點。路口節(jié)點因為其特性是基于道路拓撲的地理信息路由協(xié)議中的關(guān)鍵節(jié)點。
以無競爭的多信道接入?yún)f(xié)議vemac作為mac層協(xié)議。在vemac協(xié)議中節(jié)點通過輪詢的方式占用著控制信道上的時隙,當(dāng)節(jié)點占用控制信道上的時隙時向周圍節(jié)點廣播自己一跳內(nèi)節(jié)點和自己的的節(jié)點信息。所以節(jié)點接收到控制信道上的廣播后可以用來維護兩跳內(nèi)節(jié)點的位置情況,根據(jù)這些位置情況開始進行下一跳節(jié)點預(yù)測算法。
首先定義目標(biāo)節(jié)點為當(dāng)前節(jié)點可以預(yù)測的距離目的節(jié)點最近的節(jié)點。為了減少進入空洞,在廣播信息中加入每個節(jié)點自身的一跳鄰居節(jié)點的個數(shù),用來判斷兩跳內(nèi)的節(jié)點是否位于空洞中。判決算法如下:
(a)當(dāng)前節(jié)點a對于兩跳內(nèi)比自身更加接近目的節(jié)點x的n個鄰居結(jié)點維護一個二維數(shù)組p(n,n),轉(zhuǎn)步驟(b);
(b)當(dāng)節(jié)點a占用控制信道時,數(shù)組p清零,轉(zhuǎn)步驟(c);
(c)從節(jié)點a占用信道的下一個時隙開始,到節(jié)點a再次占用時隙之前,每當(dāng)節(jié)點a接收到其他節(jié)點一跳內(nèi)鄰居節(jié)點的信息時,記錄兩跳內(nèi)的所有節(jié)點位置信息,轉(zhuǎn)步驟(d);
(d)根據(jù)位置信息和相關(guān)道路情況,計算所有兩跳內(nèi)比節(jié)點a更加接近目的節(jié)點且與節(jié)點a在一跳之內(nèi)的節(jié)點。將將這些節(jié)點之間的距離關(guān)系保存在數(shù)組p內(nèi),p(x,y)=1表示節(jié)點x和節(jié)點y相互在一跳之內(nèi),p(x,y)=0表示節(jié)點x和節(jié)點y相互在一跳之外,轉(zhuǎn)步驟(e);
(e)對于節(jié)點a兩跳內(nèi)任意一個比節(jié)點a更加接近目的節(jié)點的節(jié)點x。如果x的一跳內(nèi)的鄰居節(jié)點數(shù)大于數(shù)組p中節(jié)點x對應(yīng)行或者列數(shù)值的總和,轉(zhuǎn)步驟(f),否則轉(zhuǎn)步驟(g);
(f)節(jié)點x存在比節(jié)點x更加接近目的節(jié)點的一跳鄰點;
(g)節(jié)點x位于空洞之中不存在更加接近目的節(jié)點的一跳鄰點。
上述算法中,通過將獲取當(dāng)前節(jié)點a兩跳內(nèi)所有節(jié)點的位置,估算每個可能的目標(biāo)節(jié)點x在節(jié)點a兩跳內(nèi)的一跳鄰居結(jié)點個數(shù),與實際x的一跳鄰居節(jié)點的個數(shù)比較,如果兩者相等,則節(jié)點x所有鄰居節(jié)點都在當(dāng)前節(jié)點a的兩跳之內(nèi),節(jié)點x無法找到比自身更加接近目的節(jié)點的一跳鄰居節(jié)點。該算法的復(fù)雜度較高,但是相對的網(wǎng)絡(luò)開銷較少。在車載自組織網(wǎng)絡(luò)中,車輛節(jié)點的計算能力和存儲能力一般不受限制,所以該算法能夠提高網(wǎng)絡(luò)性能。
下一跳節(jié)點預(yù)測算法流程如下:
(a)當(dāng)前節(jié)點a開始開始尋找數(shù)據(jù)流s→d的下一跳節(jié)點,轉(zhuǎn)步驟(b);
(b)當(dāng)前節(jié)點a先排除自己兩跳范圍內(nèi)位于空洞中的節(jié)點,再根據(jù)自己兩跳內(nèi)其他節(jié)點的位置分布尋找出最接近目的節(jié)點的節(jié)點j且,如果節(jié)點j與節(jié)點a在同一路段上(即兩者之間不存在建筑物遮擋)或者節(jié)點j與節(jié)點a中間有一個節(jié)點是路口節(jié)點,則轉(zhuǎn)步驟(d),否則轉(zhuǎn)步驟(c);
(c)尋找節(jié)點a兩跳范圍內(nèi)距離目的節(jié)點d最近的路口節(jié)點作為新的節(jié)點j,轉(zhuǎn)步驟(d);
(d)如果節(jié)點j與節(jié)點a是同一個節(jié)點,則轉(zhuǎn)步驟(e),否則轉(zhuǎn)步驟(f);
(e)開始邊緣傳輸模式;
(f)節(jié)點j為兩跳內(nèi)的目標(biāo)節(jié)點。
在上述算法中,步驟(c)中必定可以找到新的節(jié)點j。因為在步驟(b)中只有當(dāng)最接近目的節(jié)點的節(jié)點j與節(jié)點a不在同一路段上時才會進入步驟(c),而節(jié)點j與節(jié)點a相互在彼此的兩跳范圍內(nèi),必定存在一個路口節(jié)點作為兩者的中間節(jié)點,該節(jié)點即為步驟(c)中找到的新的節(jié)點j。
找到目標(biāo)節(jié)點意義在于確定了下一跳的傳輸方向,為了兩跳能盡量接近目的節(jié)點,在下一跳節(jié)點的選擇時應(yīng)該在節(jié)點j和當(dāng)前節(jié)點a一跳領(lǐng)點的交集中尋找。
2、前向節(jié)點選擇
在選擇下一跳節(jié)點時,因為已經(jīng)有目標(biāo)節(jié)點表示預(yù)測到的兩跳內(nèi)的最優(yōu)選擇,則不需要用于目的節(jié)點的距離表示節(jié)點的傳輸?shù)挠行?,而采用?jié)點到目標(biāo)節(jié)點的距離作為衡量節(jié)點是否適合作為下一跳節(jié)點的指標(biāo)之一。
同時考慮業(yè)務(wù)信道的占用情況,定義節(jié)點占用業(yè)務(wù)信道的能力。對于當(dāng)前節(jié)點a與可選下一跳節(jié)點b,統(tǒng)計在周期時間t內(nèi),節(jié)點a和節(jié)點b各自一跳鄰域的并集中節(jié)點對于業(yè)務(wù)信道的使用情況,定義節(jié)點a到節(jié)點b占用業(yè)務(wù)信道的能力為:
其中tsch_avi表示業(yè)務(wù)信道并非全部忙碌,有可用業(yè)務(wù)信道的時間,pa→b表示能夠占用業(yè)務(wù)信道進行發(fā)送的概率。
設(shè)集合s={n1,n2,...nm}為當(dāng)前節(jié)點a一跳內(nèi)的m個鄰居節(jié)點,已經(jīng)找到目標(biāo)節(jié)點j,對于集合中任意一個節(jié)點ni,我們定義節(jié)點ni作為節(jié)點a下一跳節(jié)點的傳輸能力為:
則下一跳路由選擇的判據(jù)為:
通過綜合考慮節(jié)點的業(yè)務(wù)隊列和距離目標(biāo)節(jié)點的距離,能夠更加有效的衡量節(jié)點的傳輸?shù)哪芰Α?/p>
3、邊緣傳輸模式
為了解決傳統(tǒng)邊緣傳輸模式中每一跳距離較小影響性能的問題,結(jié)合城市場景中的路口節(jié)點對于傳統(tǒng)邊緣傳輸模式進行改進,通過在分組中加入道路標(biāo)記,將道路拓撲結(jié)構(gòu)作為考慮的要素之一,使得節(jié)點能夠盡快的恢復(fù)到貪婪模式。具體算法如下:
(a)節(jié)點a開始轉(zhuǎn)換為邊緣傳輸模式,如果當(dāng)前節(jié)點比節(jié)點a距離目的節(jié)點d更近,轉(zhuǎn)到步驟(m),否則按照右手準(zhǔn)則尋找到目的節(jié)點d的可行路徑,轉(zhuǎn)到步驟(b);
(b)如果當(dāng)前節(jié)點是路口節(jié)點轉(zhuǎn)到步驟(c),否則轉(zhuǎn)到步驟(j);
(c)判斷該路口節(jié)點周圍是否有未被標(biāo)記的路段,如果存在轉(zhuǎn)到步驟(d),否則轉(zhuǎn)到步驟(i);
(d)嘗試進行貪婪模式,判斷是否能夠在未被標(biāo)記的路段中找到比當(dāng)前節(jié)點距離目的節(jié)點更近的一跳鄰點,如果能找到轉(zhuǎn)步驟(e),否則轉(zhuǎn)步驟(h);
(e)繼續(xù)按照右手準(zhǔn)則,在未被標(biāo)記的路段確定一個路段,在這個路段中尋找一跳內(nèi)的路口節(jié)點,如果能夠找到轉(zhuǎn)步驟(f),否則轉(zhuǎn)步驟(g);
(f)將該路口節(jié)點作為下一跳節(jié)點,轉(zhuǎn)到步驟(l);
(g)將該路段內(nèi)距離當(dāng)前路口節(jié)點最遠的點作為下一跳,轉(zhuǎn)到步驟(l);
(h)按右手準(zhǔn)則尋找最近的路口節(jié)點,如果能夠找到轉(zhuǎn)到步驟(k),否則轉(zhuǎn)到步驟(l);
(i)將找到的路口節(jié)點作為下一跳節(jié)點,同時將當(dāng)前節(jié)點所在路段在分組中標(biāo)記,轉(zhuǎn)到步驟(l);
(j)按右手準(zhǔn)則方向,將當(dāng)前路段中距離最遠的節(jié)點作為下一跳,轉(zhuǎn)到步驟(l);
(k)沒有到目的節(jié)點的可行路徑,傳輸結(jié)束;
(l)繼續(xù)邊緣傳輸模式,分組發(fā)送到下一跳節(jié)點,轉(zhuǎn)到步驟(a);
(m)切換到貪婪模式進行下一跳節(jié)點選擇
該算法中以路口節(jié)點與一般節(jié)點的特性為核心,當(dāng)一般節(jié)點在邊緣傳輸模式下經(jīng)過路口節(jié)點時,一般節(jié)點所在的路段已經(jīng)不存在通往目的節(jié)點的可能通路,可以將該路段標(biāo)記。通過快速接近路口節(jié)點加快邊緣傳輸模式的速度,盡快將節(jié)點恢復(fù)為提高傳輸效率。
但是當(dāng)節(jié)點進入邊緣傳輸模式時與目的節(jié)點處于平行道路上且兩者只相隔街區(qū)不存在街道時,會出現(xiàn)特殊情況,無法有效的找到到達目的節(jié)點的路徑。這種情況下使用傳統(tǒng)的邊緣傳輸模式保證能夠在節(jié)點間拓撲聯(lián)通的情況下到達目的節(jié)點。