本發(fā)明屬于車載自組網(wǎng)(vehicularad-hocnetworks,vanets)通信技術(shù)領(lǐng)域,涉及使用了路側(cè)單元rsu(road-sideunits)、網(wǎng)絡(luò)節(jié)點和rsu能夠利用地圖信息計算到目的節(jié)點的最短路徑的車載自組網(wǎng)場合。
背景技術(shù):
車載自組網(wǎng)是專門為車輛之間的通信設(shè)計的自組織網(wǎng)絡(luò),它屬于移動自組織網(wǎng)絡(luò)和物聯(lián)網(wǎng)的子集,主要目標(biāo)是建立車-x之間的通信,即:車與車(vehicletovehicle,v2v)、車與路(v2r,vehicletoroad,v2r)、車與行人、車與互聯(lián)網(wǎng)之間的全方位通信系統(tǒng),總體架構(gòu)請參見說明書附圖1。車載自組網(wǎng)的系統(tǒng)架構(gòu)可以分成三個部分:第一部分為車載自組網(wǎng)的最底層,即感知層。感知層主要指位于汽車、道路及周邊的環(huán)境中存在的感知末端,是保障車載自組網(wǎng)系統(tǒng)中車與車技車與路側(cè)設(shè)備能夠相互通信的基礎(chǔ),是整個系統(tǒng)信息的來源,是基于rfid(radiofrequencyidentification)技術(shù)基礎(chǔ)上的信息搜集及信息感知。第二部分為車載自組網(wǎng)的通信層,即車輛、道路、路側(cè)設(shè)備之間通過3g/4g、dsrc(dedicatedshortrangecommunication)、wave(wirelessaccessvehicularenvironment)、wimax(worldinteroperabilityformicrowaveaccess)、蜂窩系統(tǒng)等通過有線或者無線、窄帶或者寬帶、長距離或者短距離等各種方式進行信息的交互操作,是車載自組網(wǎng)的“管道”部分。第三層為車載自組網(wǎng)系統(tǒng)的應(yīng)用服務(wù)層,即服務(wù)運行商(telematicsserviceprovider,tsp)對各種通信業(yè)務(wù)及互聯(lián)網(wǎng)信息等進行綜合加工處理,來實現(xiàn)各項信息服務(wù)有關(guān)的應(yīng)用,是車載自組網(wǎng)提供各種服務(wù)的核心。
車載自組網(wǎng)的相關(guān)研究主要集中在一些汽車工業(yè)相對發(fā)達的國家和地區(qū),例如:美國、歐洲、日本等。二十世紀(jì)八十年代早期,隨著計算機網(wǎng)絡(luò)技術(shù)和無線通信技術(shù)的發(fā)展,日本率先開始了關(guān)于車載自組網(wǎng)的研究。由日本交通和汽車電子技術(shù)協(xié)會(theassociationofelectronictechnologyforautomobiletrafficanddriving)就車輛間的通信展開了大量的研究。
1994年,美國加州path的自動化高速公路(automatichighway)工程首次采用車輛間通信系統(tǒng)來輔助駕駛員對道路上發(fā)生的緊急情況作出快速的反應(yīng)。當(dāng)時,系統(tǒng)通信是通過路邊基站和相應(yīng)的設(shè)備來輔助車輛的行駛及通信,因此通信依賴于路側(cè)設(shè)備,交通信息由交通控制中心統(tǒng)一收集并集中管理,通過廣播的方式把相關(guān)信息發(fā)送到相關(guān)車輛。同年1月日本成立了“道路—交通—車輛智能化推進協(xié)會”,該協(xié)會進行了一系列與its有關(guān)的活動,its逐漸在私營領(lǐng)域形成了市場。
1995年,日本安裝導(dǎo)航系統(tǒng)的汽車總量已經(jīng)超過了100萬。1995年2月,由日本首相直接領(lǐng)導(dǎo)的“具有先進通信與信息的社會籌劃組”提出了“促進先進通信與信息社會的基本指導(dǎo)方案”。1996年開始試行道路交通情報通信系統(tǒng)(vehicleinformationandcommunicationsystem,vics)。
1999年,美國聯(lián)邦通信委員會(federalcommunicationscommission,fcc)分配了專門用于車輛間通信的專用短程通信頻率dscr(dedicatedshortrangecommunication)頻段為5.850-5.925ghz。
2000年,mit的morris等人提出carnet概念,歐洲西門子公司等提出fleetnet,人們開始考慮實用于車輛間通信的manet網(wǎng)絡(luò),即vanet網(wǎng)絡(luò),車載自組網(wǎng)的概念首次被提出。fleetnet提出的應(yīng)用主要為:信息服務(wù)、用戶通信、協(xié)助駕駛服務(wù)以及分布式浮動汽車數(shù)據(jù)服務(wù)。所以這些項目都基于td-scdma制式。
2004年,美國交通部發(fā)起了一系列關(guān)于智能交通領(lǐng)域的研究,其中包括v2v通信和路邊基站集成系統(tǒng)(vehicleinfrastructureintegration,vii)。主要功能為:使交通管理部門安裝在道路附近的基站與配備通信設(shè)備的車輛之間能夠相互通信。同時用于增強道路交通網(wǎng)絡(luò)的安全性和移動性,傳遞重要的交通網(wǎng)絡(luò)信息和交通狀態(tài)消息。
2005年,歐洲成立了車輛間通信聯(lián)盟(car2carcommunicationconsortium),意在通過車輛間通信加強公路安全、提升交通效率。日本也通過了兩個車輛間通信標(biāo)準(zhǔn)。由6家汽車廠商(bmw、daimlerchrysler、volkswagen等)聯(lián)合成立了車輛間通信聯(lián)盟,主要目的就是開發(fā)利用wlan技術(shù)的v2v通信系統(tǒng)及定制v2r通信系統(tǒng)歐洲通用標(biāo)準(zhǔn)。
2010年,美國發(fā)布《美國its戰(zhàn)略計劃2010-2014》。2011年3月日本部署完成于1999年啟動的smartway計劃,引入主要道路,利用先進的vics、etc、dscr、ahs公路巡航/輔助系統(tǒng)等及信息與通信技術(shù),進行道路基礎(chǔ)設(shè)施的整合,實現(xiàn)智能道路。
近年來,美國加州大學(xué)irvine分校提出了一種基于v2v通信的交通管理信息系統(tǒng)及控制系統(tǒng)autonet。在autonet系統(tǒng)中,交通狀況、交通網(wǎng)絡(luò)結(jié)構(gòu)、信息管理以及無線通信技術(shù)、協(xié)議等因素會影響系統(tǒng)的性能。這種分布式系統(tǒng)的優(yōu)點是:當(dāng)網(wǎng)絡(luò)中配備的車輛達到一定比例時,便可不再依靠路側(cè)設(shè)備。
與國外相比,我國關(guān)于車聯(lián)網(wǎng)的研究工作起步相對較晚。
2004年,南京郵電大學(xué)的研究人員對當(dāng)時用于v2v通信的基于位置的路由協(xié)議進行了分析,并對存在的問題進行了探討;2007年,清華大學(xué)對車載自組網(wǎng)進行了研究,主要包括:車載自組網(wǎng)的特征、研究現(xiàn)狀及路由層、mac層和物理層的設(shè)計;同年,武漢大學(xué)也對車載自組網(wǎng)進行了研究,主要對vanet的傳輸控制協(xié)議提出了設(shè)計要素和要求。2009年,西北工業(yè)大學(xué)針對實際道路交通及環(huán)境的特點,實現(xiàn)了新型的車輛合成運動模型。此外,北京郵電大學(xué),北京交通大學(xué),浙江大學(xué),重慶郵電大學(xué)等許多高校近年來對車載自組網(wǎng)也進行了大量關(guān)于車載自組網(wǎng)可靠路由方法的理論研究及仿真實驗,車載網(wǎng)作為國家的發(fā)展戰(zhàn)略越來越受到重視。
可靠的路由協(xié)議是車載自組網(wǎng)的關(guān)鍵技術(shù)之一,路由協(xié)議的主要作用是為車輛節(jié)點在發(fā)送數(shù)據(jù)包時提供路徑信息,因此路由協(xié)議的好壞直接影響車輛節(jié)點之間的通信性能。車載自組網(wǎng)中節(jié)點移動速度快,使得網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)變化快,鏈路的生存時間短,這使得傳統(tǒng)的adhoc路由協(xié)議不太適用于vanet網(wǎng)絡(luò)。因此,研究、發(fā)展、使用與車載網(wǎng)特殊環(huán)境相適應(yīng)的路由協(xié)議變得越來越重要。
近年來,國內(nèi)外學(xué)者及研究機構(gòu)對車載網(wǎng)路由協(xié)議做了大量的研究,但對車載網(wǎng)中利用路側(cè)設(shè)備輔助的路由方法研究較少,有關(guān)路側(cè)設(shè)備的研究也主要集中在路側(cè)設(shè)備的部署方法、路側(cè)設(shè)備的能量控制及路側(cè)設(shè)備用來發(fā)送預(yù)警信息、規(guī)避道路擁擠等作用上,而路側(cè)設(shè)備完全可以用在輔助路由方面。由于路側(cè)設(shè)備是經(jīng)過骨干網(wǎng)連接,傳輸速度快、可靠,所以利用路側(cè)設(shè)備輔助路由能更加可靠的把數(shù)據(jù)包傳送到更遠的地方,因此,充分合理的利用路側(cè)設(shè)備輔助路由的方法研究具有重大的意義。
在利用路側(cè)設(shè)備輔助路由的方法中,yanlinp等人提出rar(roadside-aidedrouting)方法(rsu輔助的路由方法)(請參見文獻:yanlinp,zakhiaa.roadside-aidedroutinginvehicularnetworks[c].2006ieeeinternationalconferenceoncommunications,2006:3602-3607.),該方法中主要經(jīng)過rsu骨干網(wǎng)實現(xiàn)數(shù)據(jù)傳輸,但方法要求車輛在網(wǎng)絡(luò)中的任何地方都能通過單跳的方式與rsu建立鏈接,因此需要在網(wǎng)絡(luò)中部署大量的rsu。
raphaelf等人提出trafroute(基于固定節(jié)點轉(zhuǎn)發(fā)的路由方法)(請參見文獻:raphaelf,eugeniog.adifferentapproachtoroutinginvehicularnetworks[c].2010ieee6thinternationalconferenceonwirelessandmobilecomputing,2010:521-528.),該方法在交叉口部署rsu作為固定轉(zhuǎn)發(fā)節(jié)點,把網(wǎng)絡(luò)分成很多個區(qū),但節(jié)點在發(fā)送數(shù)據(jù)時必須先知道目的節(jié)點的位置信息。
yongd等人提出一種利用rsu節(jié)點的攜帶轉(zhuǎn)發(fā)機制(請參見文獻:yongd,lix.sadv:static-node-assistedadaptivedatadisseminationinvehicularnetworks[j].ieeetransactionsonvehiculartechnology,2010,59(5):2445-2455.),rsu將數(shù)據(jù)包存儲直至其通信范圍內(nèi)有轉(zhuǎn)發(fā)節(jié)點且鏈路再次可用,該方法雖然增大了成功率,但是會導(dǎo)致較高的傳輸時延而且會加重rsu的負(fù)擔(dān),不適用于節(jié)點密度高的交通場景。
borsettid等人提出一種在rsu輔助的地理位置路由方法(請參見文獻:borsettid,gozalvezj.infrastructure-assistedgeo-routingforcooperativevehicularnetworks[c].2010ieeevehicularnetworkingconference,2010:255-262.),但該方法基于拓?fù)渌⒌淖疃搪窂讲灰欢ㄊ亲顑?yōu)路徑。
khaleelm等人提出了roamer(路側(cè)單元作為消息路由)方法(請參見文獻:khaleelm,hassana.roamer:roadsideunitsasmessageroutersinvanets[j].adhocnetworks,2012,10(3):479-496.)。在該方法中,車輛節(jié)點維護一個以自己為圓心,以到最近rsu之間的距離為半徑的圓所在范圍內(nèi)的所有節(jié)點的l表(一種包含節(jié)點的位置、運動速度、運動方向和時間戳等信息的表格),l表記錄的節(jié)點的位置范圍請參見附圖2。離節(jié)點s最近的rsu為rsu1,所以s節(jié)點的l表為以自身為圓心、以dth為半徑的圓內(nèi)所有車輛的信息,每一個車輛都維護自身的l表,維護l表的目的就是為了判斷目的節(jié)點到原節(jié)點的距離哪個更遠,如果l表內(nèi)沒有目的節(jié)點信息,則說明目的節(jié)點離源節(jié)點的距離比rsu到源節(jié)點的距離更遠,需要借助rsu進行數(shù)據(jù)包的發(fā)送,源節(jié)點需要把數(shù)據(jù)包發(fā)送給離自己最近的rsu,否則,則說明目的節(jié)點離源節(jié)點的距離比rsu到源節(jié)點的距離更近,不需要借助rsu,即目的節(jié)點信息在源節(jié)點的l表中,源節(jié)點直接發(fā)送數(shù)據(jù)包給目的節(jié)點。每個節(jié)點周期性的和離自己最近的rsu交互beacon(包含自己的位置,速度,方向,時間戳等信息)消息,rsu的鄰接關(guān)系為以自己為圓心,以最遠的鄰居rsu為半徑的圓。方法主要分為兩個階段:(1)節(jié)點到rsu的路由。節(jié)點首先查找自己的l表,如果有目的節(jié)點的信息,則直接通過無線信道發(fā)送數(shù)據(jù),如果沒有到目的節(jié)點的信息,則說明需要通過rsu傳遞,節(jié)點通過自身加載的地圖選擇地圖上到最近rsu最短的街道組成的路徑,把數(shù)據(jù)通過貪婪的方式傳遞給離自己最近的rsu。(2)rsu到目的節(jié)點的路由。數(shù)據(jù)包傳遞到離自己最近的rsu后,如果rsu有目的節(jié)點的信息,則直接預(yù)測目的節(jié)點的位置,把數(shù)據(jù)包傳遞給目的節(jié)點,如果沒有,則rsu向自己的鄰居發(fā)送rreq,鄰居rsu有目的節(jié)點的信息,則回復(fù)ack,如果沒有則繼續(xù)向自己的鄰居rsu轉(zhuǎn)發(fā)rreq,直到找到有目的節(jié)點的rsu,并把數(shù)據(jù)包傳遞給有目的節(jié)點信息的rsu(目的rsu),目的rsu通過接收到的目的節(jié)點最近一次的beacon消息預(yù)測目的節(jié)點的范圍并把數(shù)據(jù)包傳遞給目的節(jié)點。該方法雖然整合貪婪轉(zhuǎn)發(fā)路由(greedyperimeterstalessrouting,gpsr)和車輛輔助的數(shù)據(jù)分發(fā)方法(greedyperimeterstalessrouting,vadd),能很好地適應(yīng)節(jié)點密度高和密度稀疏的場景,但引入大量控制包開銷,且節(jié)點在進行貪婪轉(zhuǎn)發(fā)時會陷入局部最大。
al-kubatig等人提出了一種快速可靠的混合式路由(請參見文獻:al-kubatig,al-dubaia,mackenziel,etal.fastandreliablehybridroutingforvehicularadhocnetworks[c].201313thinternationalconferenceonitstelecommunications,2013:20-25.),方法采用rsu廣播beacon消息給車輛節(jié)點,從而使節(jié)點從中獲取自己到最近的rsu的路徑,但方法生成的路徑時間太長,可能導(dǎo)致路徑中間節(jié)點不連通,路徑斷裂的現(xiàn)象。
綜上所述,人們對基于地理位置的車載自組網(wǎng)貪婪轉(zhuǎn)發(fā)路由方法已經(jīng)開展了一定的研究,在數(shù)據(jù)和控制消息傳輸機制等方面取得一些進展;但通過研究發(fā)現(xiàn):以roamer方法為代表的現(xiàn)有基于地理位置的車載自組網(wǎng)貪婪轉(zhuǎn)發(fā)路由方法中,存在以下兩個問題:
1.每個節(jié)點都需要周期性地通過一跳或者多跳的方式向最近的rsu發(fā)送beacon消息,導(dǎo)致控制開銷偏大。
2.在節(jié)點向rsu或者rsu向節(jié)點傳送數(shù)據(jù)包的過程中,數(shù)據(jù)包會在預(yù)先計算出的最短路徑上以貪婪轉(zhuǎn)發(fā)的方式傳遞;當(dāng)攜帶消息的節(jié)點偏離最短路徑時,節(jié)點會難以找到合適的下一跳節(jié)點,如附圖3所示;這種情況會導(dǎo)致數(shù)據(jù)包難以到達目的節(jié)點,因而數(shù)據(jù)傳送成功率會下降,數(shù)據(jù)傳輸時延會增加。
上述問題的存在導(dǎo)致車載自組網(wǎng)的控制開銷偏大、數(shù)據(jù)傳送成功率下降且端到端平均傳輸時延增加,車載自組網(wǎng)的網(wǎng)絡(luò)性能因此受到削弱,有必要提出新的方法對它們加以解決。本發(fā)明將針對這些問題提出切實可行的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明提出一種基于消息聚合的車載自組網(wǎng)高效可靠路由方法,它包含“beacon消息自適應(yīng)聚合”、“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”和“節(jié)點偏離最短路徑時重新尋路”三種新機制。本發(fā)明提出的方法通過聚合多個beacon消息以及聚合beacon消息與數(shù)據(jù)包,能夠減少網(wǎng)絡(luò)中傳送的beacon消息的數(shù)量,降低控制開銷;同時,在攜帶數(shù)據(jù)包的節(jié)點偏離預(yù)定最短路徑時重新尋路,解決數(shù)據(jù)包因節(jié)點偏離最短路徑而導(dǎo)致的難以到達目的地的問題,提高數(shù)據(jù)包傳送成功率,減小數(shù)據(jù)包的端到端平均時延。
(一)本發(fā)明提出的新機制的基本原理
以下具體介紹本發(fā)明提出的“beacon消息自適應(yīng)聚合”、“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”和“節(jié)點偏離最短路徑時重新尋路”三種新機制的基本原理。
1.beacon消息自適應(yīng)聚合機制
在現(xiàn)有基于地理位置的車載自組網(wǎng)貪婪轉(zhuǎn)發(fā)路由方法中,每個節(jié)點周期性地通過一跳或者多跳的形式向離自己最近的rsu發(fā)送beacon消息。對于一個節(jié)點來說,有兩種beacon消息需要發(fā)送,一種是自己產(chǎn)生的beacon消息,另一種是需要自己轉(zhuǎn)發(fā)的beacon消息,而目的節(jié)點均為離自己最近的rsu。節(jié)點如果接收到待轉(zhuǎn)發(fā)beacon消息,則需要查詢鄰居表,對beacon消息進行貪婪轉(zhuǎn)發(fā)。如果發(fā)送自己產(chǎn)生的beacon消息和轉(zhuǎn)發(fā)其它節(jié)點的beacon消息在時間上間隔較近,則節(jié)點會在較短的時間內(nèi)分兩次向同一個rsu發(fā)送兩個beacon消息,這樣的操作存在冗余的控制開銷,容易導(dǎo)致控制開銷偏大。為了解決這個問題,本發(fā)明提出了一種“beacon消息自適應(yīng)聚合”新機制,其基本原理如下:
由于一個節(jié)點自己產(chǎn)生和轉(zhuǎn)發(fā)的beacon消息的目的節(jié)點相同,都是距離節(jié)點最近的rsu,因此可以考慮將兩種beacon消息進行融合以減少控制開銷。為此,將節(jié)點生成beacon消息的固定周期固定生成時間方式改為周期均值不變但生成時間可在一定范圍內(nèi)隨機變化的方式;當(dāng)網(wǎng)絡(luò)運行時間進入可發(fā)送beacon消息的范圍后,如果節(jié)點收到別的節(jié)點的beacon消息(或聚合beacon消息),則自己產(chǎn)生一個beacon消息并將該beacon消息和收到的beacon消息(或聚合beacon消息)聚合成一個“聚合beacon消息”發(fā)送出去,從而減少beacon消息的數(shù)量,降低控制開銷。如果節(jié)點在可生成beacon消息的時間范圍內(nèi)沒有生成beacon消息,則在該時間范圍結(jié)束后,立即生成一個beacon消息并向離自己最近的rsu發(fā)送。“beacon消息自適應(yīng)聚合”新機制的主要流程如附圖4所示,聚合beacon消息的格式如附圖5所示。
2.數(shù)據(jù)包與beacon消息自適應(yīng)聚合機制
在現(xiàn)有基于地理位置的貪婪轉(zhuǎn)發(fā)路由方法中,每個節(jié)點會周期性地通過一跳或者多跳的形式向離自己最近的rsu發(fā)送beacon消息,同時,也會把在l表中沒找到目的節(jié)點的數(shù)據(jù)包以一跳或多跳的方式發(fā)往離自己最近的rsu。如果發(fā)送自己產(chǎn)生的beacon消息與發(fā)送或轉(zhuǎn)發(fā)數(shù)據(jù)包在時間上間隔較近,則節(jié)點會在較短的時間內(nèi)分兩次向同一個rsu發(fā)送beacon消息和數(shù)據(jù)包,這樣的操作存在冗余的控制開銷,容易導(dǎo)致控制開銷偏大。為了解決這個問題,本發(fā)明提出了一種“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”新機制,其基本原理如下:
由于一個節(jié)點產(chǎn)生的beacon消息的目的地是距離最近的rsu,而節(jié)點源發(fā)的部分?jǐn)?shù)據(jù)包和轉(zhuǎn)發(fā)的所有數(shù)據(jù)包也都以距離最近的rsu為目的節(jié)點,因此可以考慮將目的節(jié)點都為rsu的數(shù)據(jù)包和beacon消息進行聚合,以減少beacon消息的數(shù)量,從而降低控制開銷。為了實現(xiàn)數(shù)據(jù)包和beacon消息的聚合,將節(jié)點生成beacon消息的固定周期固定生成時間方式改為周期均值不變但生成時間可在一定范圍內(nèi)隨機變化的方式;當(dāng)網(wǎng)絡(luò)運行時間進入可生成beacon消息的范圍后,如果節(jié)點有數(shù)據(jù)包需要發(fā)往距離最近的rsu,或者接收到別的節(jié)點發(fā)來的需轉(zhuǎn)發(fā)給rsu的數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”),且該數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”)的長度與數(shù)據(jù)包最大長度的差值不小于beacon消息的長度,則生成一個beacon消息并將其和數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”)聚合成一個“數(shù)據(jù)-beacon聚合包”發(fā)送出去,從而減少beacon消息的數(shù)量,降低控制開銷。如果節(jié)點在可生成beacon消息的時間范圍內(nèi)沒有生成beacon消息,則在該時間范圍結(jié)束后,立即生成一個beacon消息并向離自己最近的rsu發(fā)送?!皵?shù)據(jù)包與beacon消息自適應(yīng)聚合”新機制的主要流程如附圖6所示,數(shù)據(jù)-beacon聚合包的格式如附圖7所示。
3.節(jié)點偏離最短路徑時重新尋路機制
在現(xiàn)有的基于地理位置的車載自組網(wǎng)貪婪轉(zhuǎn)發(fā)路由方法中,當(dāng)節(jié)點需要發(fā)送數(shù)據(jù)包給離自己最近的rsu或rsu要向本區(qū)域的目的節(jié)點發(fā)送數(shù)據(jù)包時,會利用地圖計算一條到rsu或目的節(jié)點的、由道路(包括分叉路口)組成的最短路徑,然后由位于這條路徑上的節(jié)點負(fù)責(zé)進行轉(zhuǎn)發(fā);如果收到數(shù)據(jù)包的中間節(jié)點沒有找到合適的下一跳節(jié)點,則會攜帶數(shù)據(jù)包繼續(xù)運動,直到找到合適的下一跳節(jié)點或遇到目的節(jié)點。經(jīng)過深入研究發(fā)現(xiàn),上述轉(zhuǎn)發(fā)機制存在一個問題:當(dāng)攜帶消息的節(jié)點偏離原有路徑時,節(jié)點會難以找到合適的下一跳節(jié)點,從而導(dǎo)致數(shù)據(jù)包難以到達目的節(jié)點,因而數(shù)據(jù)傳送成功率會下降,數(shù)據(jù)傳輸時延會增加。為了解決這個問題,本發(fā)明提出了“節(jié)點偏離最短路徑時重新尋路”新機制。
“節(jié)點偏離最短路徑時重新尋路”新機制的基本思路是:數(shù)據(jù)包攜帶有源節(jié)點計算出的、預(yù)定經(jīng)過的最短路徑的信息,由該路徑上的節(jié)點作為中間節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包;攜帶數(shù)據(jù)包的節(jié)點周期性判斷自己是否已經(jīng)脫離了數(shù)據(jù)包中裝載的預(yù)設(shè)最短路徑,如果已經(jīng)脫離,則啟動重新尋路操作,重新在地圖上尋找通往rsu(或目的節(jié)點)的最短路徑(這條路徑需要避開原有路徑上節(jié)點馬上就要經(jīng)過但沒有經(jīng)過的那一段道路),如附圖8中帶箭頭的實線所示;然后用該最短路徑的信息替換掉數(shù)據(jù)包中原有的最短路徑信息,在新的最短路徑上繼續(xù)使用貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)該數(shù)據(jù)包?!肮?jié)點偏離最短路徑時重新尋路”新機制的主要流程如附圖9所示。
(二)本發(fā)明提出的基于消息聚合的車載自組網(wǎng)高效可靠路由方法的主要操作
本發(fā)明提出的基于消息聚合的車載自組網(wǎng)高效可靠路由方法的操作可分為在時序上有交錯的“控制消息生成、傳輸與處理”和“數(shù)據(jù)包傳輸與處理”兩部分?!翱刂葡⑸?、傳輸與處理”部分的主要功能是生成、傳輸和處理與路由相關(guān)的各種控制消息,包括獲取節(jié)點位置、建立鄰居表等;“數(shù)據(jù)包傳輸與處理”部分的主要功能是傳輸數(shù)據(jù)包并做有關(guān)處理。
本發(fā)明提出的基于消息聚合的車載自組網(wǎng)高效可靠路由方法包含“beacon消息自適應(yīng)聚合”、“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”和“節(jié)點偏離最短路徑時重新尋路”三種新機制;其中,“beacon消息自適應(yīng)聚合”新機制工作在“控制消息生成、傳輸與處理”部分,“節(jié)點偏離最短路徑時重新尋路”新機制工作在“數(shù)據(jù)包傳輸與處理”部分,而“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”新機制則同時工作在“控制消息生成、傳輸與處理”和“數(shù)據(jù)包傳輸與處理”兩部分;方法的組成如附圖10所示。
各部分的主要操作步驟具體如下:
1.控制消息生成、傳輸與處理
步驟1.節(jié)點建立一張l表,用于記錄自己和滿足距離要求的其它節(jié)點的位置、運動速度、運動方向和時間戳等信息。距離要求為:節(jié)點間距離<當(dāng)前節(jié)點與最近的rsu的距離。
步驟2.節(jié)點建立一張鄰居表,用于記錄在自己通信范圍內(nèi)的節(jié)點(即鄰居節(jié)點)的信息,包括節(jié)點位置、運動速度、運動方向和時間戳等信息。
步驟3.節(jié)點設(shè)置一個l表的更新周期值tl,每當(dāng)計時時間到達tl時,便用自己最新的位置信息去更新l表中自己的位置信息。
步驟4.節(jié)點設(shè)置一個hello消息的廣播周期值thello,每當(dāng)計時時間到達thello時,便生成一個包含自己的id(或者地址)和l表的內(nèi)容的hello消息,然后在1跳范圍內(nèi)廣播該hello消息。
步驟5.節(jié)點設(shè)置一個beacon消息的生成周期值tbeacon,以該值作為beacon消息的生成周期的均值周期性地生成和發(fā)送beacon消息,但讓beacon消息的生成時間可以在一定范圍內(nèi)隨機變化,因此,將可以生成beacon消息的時間段稱為“beacon消息生成時段”,該時段的長度可以根據(jù)需要在[0,t)范圍內(nèi)設(shè)置,參考實際例子缺省設(shè)置為0.2t,分布為0.9t~1.1t。beacon消息包含節(jié)點的id、位置信息、時間戳等。
步驟6.一個節(jié)點如果收到了其它節(jié)點發(fā)來的beacon消息或聚合beacon消息,根據(jù)本發(fā)明提出的“beacon消息自適應(yīng)聚合”新機制,它會首先判斷網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段;如果是,則生成一個beacon消息,接著將收到的beacon消息(或聚合beacon消息)和自己生成的beacon消息進行聚合,形成一個聚合beacon消息,然后,在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將聚合beacon消息發(fā)給該鄰居節(jié)點;如果未進入beacon消息生成時段,則直接在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,然后將收到的beacon消息(或聚合beacon消息)發(fā)給該鄰居節(jié)點。
步驟7.一個節(jié)點如果有數(shù)據(jù)包需要發(fā)往最近的rsu,或者收到其它節(jié)點發(fā)來的需轉(zhuǎn)發(fā)的數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包),根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,它會首先判斷:網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段?數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包)的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則生成一個beacon消息并將其和數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包)聚合成一個“數(shù)據(jù)-beacon聚合包”,然后,在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)-beacon聚合包發(fā)給該鄰居節(jié)點;如果二者未同時成立且待發(fā)的包是數(shù)據(jù)包,則按“數(shù)據(jù)包傳輸與處理”的相關(guān)步驟(數(shù)據(jù)包如果是自己產(chǎn)生的按步驟2,如果是收到的則按步驟3)進行操作;否則,直接在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)-beacon聚合包發(fā)給該鄰居節(jié)點。
步驟8.當(dāng)beacon消息生成時段結(jié)束時,每個節(jié)點都判斷:在beacon消息生成時段內(nèi)自己是否生成了beacon消息?如果沒有,則在該時段結(jié)束的時刻,該節(jié)點生成一個beacon消息,然后在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將beacon消息發(fā)送給該鄰居節(jié)點。
步驟9.節(jié)點和rsu如果收到hello消息,則從中取出源節(jié)點id、l表內(nèi)容等,更新自己的鄰居表和l表;在更新l表時,對于節(jié)點間距>當(dāng)前節(jié)點與最近的rsu的距離的節(jié)點,它們的信息不保留在l表中。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。
2.數(shù)據(jù)包傳輸與處理
步驟1.一個節(jié)點的網(wǎng)絡(luò)層如果收到自己上層下傳的數(shù)據(jù)包,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,先判斷:網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段?數(shù)據(jù)包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟(步驟7)進行操作;否則,查詢l表,看該數(shù)據(jù)包的目的節(jié)點是否在l表中;如果在,表明可以直接向目的節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,則從鄰居表中找出與目的節(jié)點距離最近的鄰居節(jié)點,將數(shù)據(jù)包發(fā)給該鄰居節(jié)點,然后轉(zhuǎn)步驟3;如果不在,則需將數(shù)據(jù)包發(fā)給最近的rsu,執(zhí)行下一步。
步驟2.節(jié)點利用地圖計算出一條到離自己最近的rsu的、由道路組成的最短路徑(路徑可由分叉路口的坐標(biāo)序列來表示),然后將該最短路徑的信息裝入數(shù)據(jù)包;如果遇到該最短路徑上離rsu更近的節(jié)點,則將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有遇到合適的下一跳節(jié)點,則會攜帶著數(shù)據(jù)包。在攜帶數(shù)據(jù)包運動的過程中,節(jié)點會采用本發(fā)明提出的“節(jié)點偏離最短路徑時重新尋路機制”新機制,周期性判斷自己是否已經(jīng)脫離了之前算出的最短路徑,如果已經(jīng)脫離,則啟動重新尋路操作,根據(jù)地圖信息再次計算通往目的節(jié)點的最短路徑(這條路徑需要避開原有路徑上節(jié)點馬上就要經(jīng)過但沒有經(jīng)過的那一段道路),然后用該最短路徑的信息替換掉數(shù)據(jù)包中原有的最短路徑信息,在新的最短路徑上使用貪婪轉(zhuǎn)發(fā)的策略繼續(xù)轉(zhuǎn)發(fā)該數(shù)據(jù)包。
步驟3.一個節(jié)點的網(wǎng)絡(luò)層如果收到其它節(jié)點發(fā)來的數(shù)據(jù)包,首先從數(shù)據(jù)包中取出目的節(jié)點判斷是普通節(jié)點還是rsu;如果是普通節(jié)點,則從鄰居表中找出與目的節(jié)點距離最近的鄰居節(jié)點,將數(shù)據(jù)包的生命期字段(用于限制數(shù)據(jù)包被轉(zhuǎn)發(fā)的次數(shù)以避免數(shù)據(jù)包被無窮次轉(zhuǎn)發(fā))值減1,然后把數(shù)據(jù)包發(fā)給該鄰居節(jié)點。如果是rsu,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,節(jié)點判斷:網(wǎng)絡(luò)運行時間是否進入了beacon消息生成時段?數(shù)據(jù)包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟進行操作;如果二者未同時成立,則從數(shù)據(jù)包中取出最短路徑信息,在該路徑上尋找離rsu更近的節(jié)點,如果找到,則將數(shù)據(jù)包的生命期字段值減1然后把數(shù)據(jù)包發(fā)給它,如果沒找到則攜帶著數(shù)據(jù)包,直到遇到離rsu更近的節(jié)點或rsu。
步驟4.一個節(jié)點的網(wǎng)絡(luò)層如果收到其它節(jié)點發(fā)來的“數(shù)據(jù)-beacon聚合包”,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,節(jié)點判斷:網(wǎng)絡(luò)運行時間是否進入了beacon消息生成時段?數(shù)據(jù)-beacon聚合包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟(步驟7)進行操作;如果二者未同時成立,則從鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)-beacon聚合包的生命期字段值減1后把該聚合包發(fā)給該鄰居節(jié)點。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。
步驟5.如果rsu收到一個普通節(jié)點發(fā)來的包,它先判斷包的類型;如果是beacon消息或beacon聚合消息,則轉(zhuǎn)步驟6;如果是數(shù)據(jù)-beacon聚合包,則轉(zhuǎn)步驟7;如果是數(shù)據(jù)包,則轉(zhuǎn)步驟8。
步驟6.rsu從beacon消息或beacon聚合消息中取出節(jié)點的信息,然后存入預(yù)先建立的、用于存儲本區(qū)域節(jié)點信息的“域內(nèi)節(jié)點信息表”。然后轉(zhuǎn)步驟9。
步驟7.rsu從數(shù)據(jù)-beacon聚合包中取出所有的beacon消息,接著從beacon消息中取出節(jié)點的信息,存入“域內(nèi)節(jié)點信息表”;然后,需對數(shù)據(jù)-beacon聚合包中的數(shù)據(jù)包進行處理,轉(zhuǎn)步驟8。
步驟8.rsu取出數(shù)據(jù)包的目的節(jié)點,查詢“域內(nèi)節(jié)點信息表”看目的節(jié)點是否在本區(qū)域;如果不在,則通過rsu之間的通信體系和機制(如由rsu組成的有線骨干網(wǎng)絡(luò)及其路由和數(shù)據(jù)包傳送機制),將數(shù)據(jù)包發(fā)送給鄰近(指在一跳范圍內(nèi))的rsu。如果在,則利用地圖計算出一條到目的節(jié)點的、由道路組成的最短路徑(路徑可由分叉路口的坐標(biāo)序列來表示),然后將該最短路徑的信息裝入數(shù)據(jù)包;如果遇到該最短路徑上離目的節(jié)點更近的節(jié)點,則將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有遇到該最短路徑上合適的下一跳節(jié)點,則會在所有離目的節(jié)點更近的鄰居節(jié)點中選擇一個離目的節(jié)點最近的節(jié)點,然后將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有找到離目的節(jié)點更近的鄰居節(jié)點,則會繼續(xù)保存數(shù)據(jù)包,直到遇到合適的下一跳節(jié)點或數(shù)據(jù)包超期被丟棄。
步驟9.如果一個rsu收到鄰近rsu發(fā)來的數(shù)據(jù)包,它首先從數(shù)據(jù)包中取出目的節(jié)點信息,然后查詢“域內(nèi)節(jié)點信息表”看目的節(jié)點是否在本區(qū)域;如果在,則從預(yù)先建立的鄰居表中找出距離目的節(jié)點最近的鄰居節(jié)點,將數(shù)據(jù)包發(fā)給該鄰居節(jié)點;如果不在,則將數(shù)據(jù)包發(fā)給鄰近的其它rsu(用rsu之間的通信體系和機制)。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。
(三)本發(fā)明的有益效果
本發(fā)明的有益效果主要有以下三方面:
(1)采用“beacon消息自適應(yīng)聚合”和“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”兩種新機制后,網(wǎng)絡(luò)中beacon消息的數(shù)量減少,分組頭部、mac幀的幀頭和幀尾的數(shù)量因而減少,從而使控制開銷降低,路由方法表現(xiàn)得更加高效。
(2)采用“節(jié)點偏離最短路徑時重新尋路”新機制后,攜帶數(shù)據(jù)包的節(jié)點偏離最短路徑導(dǎo)致數(shù)據(jù)包難以到達目的節(jié)點的問題得到了解決,從而使數(shù)據(jù)包傳送成功率提高。
(3)采用“節(jié)點偏離最短路徑時重新尋路”新機制后,當(dāng)攜帶數(shù)據(jù)包的節(jié)點偏離最短路徑時,數(shù)據(jù)包會在重新計算出的最短路徑上繼續(xù)以多跳方式傳遞,比數(shù)據(jù)包由一個節(jié)點攜帶給rsu的方式更快速,從而使數(shù)據(jù)包的端到端平均時延減小。
附圖說明
附圖1為車載自組網(wǎng)網(wǎng)絡(luò)架構(gòu)。
車輛節(jié)點既能與基礎(chǔ)設(shè)施、公共熱點通過無線局域網(wǎng)進行通信,也能與路側(cè)單元通過自組織網(wǎng)絡(luò)進行通信,而路側(cè)單元再通過有線方式連接上互聯(lián)網(wǎng)。
附圖2為車輛維護的鄰接關(guān)系(l表)示意圖。
在roamer方法中,車輛節(jié)點維護一個以自己為圓心,以到最近rsu之間的距離為半徑的圓所在范圍內(nèi)的所有節(jié)點的l表(包括位置,速度,方向,時間戳等信息)。
附圖3為節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包到最近的rsu,路徑偏離示意圖。
s節(jié)點發(fā)送數(shù)據(jù)到最近rsu的路由階段,假設(shè)s通過地圖計算出到rsu的最短路徑為圖中虛線所示,在沿已有路徑轉(zhuǎn)發(fā)時,s貪婪轉(zhuǎn)發(fā)數(shù)據(jù)給了a(a的運動方向為圖中空白箭頭所示),由于道路r2中沒有合適的轉(zhuǎn)發(fā)節(jié)點或者有節(jié)點且在a攜帶數(shù)據(jù)包至十字路口范圍時依然超過了a的通信范圍,則a會攜帶數(shù)據(jù)包偏離原有的路徑,如果a在十字路口向下行駛,會導(dǎo)致偏離原有路徑越來越遠。
附圖4為beacon消息自適應(yīng)聚合機制流程圖。
當(dāng)網(wǎng)絡(luò)運行時間進入可發(fā)送beacon消息的范圍后,如果節(jié)點收到別的節(jié)點的beacon消息(或聚合beacon消息),則自己產(chǎn)生一個beacon消息并將該beacon消息和收到的beacon消息(或聚合beacon消息)聚合成一個“聚合beacon消息”發(fā)送出去。如果節(jié)點在可生成beacon消息的時間范圍內(nèi)沒有生成beacon消息,則在該時間范圍結(jié)束后,立即生成一個beacon消息并向離自己最近的rsu發(fā)送。
附圖5為beacon消息自適應(yīng)聚合包格式圖。
type值為新的type值,表示beacon消息自適應(yīng)聚合包。
附圖6為數(shù)據(jù)包與beacon消息自適應(yīng)聚合機制流程圖。
當(dāng)網(wǎng)絡(luò)運行時間進入可生成beacon消息的范圍后,如果節(jié)點有數(shù)據(jù)包需要發(fā)往距離最近的rsu,或者接收到別的節(jié)點發(fā)來的需轉(zhuǎn)發(fā)給rsu的數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”),且該數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”)的長度與數(shù)據(jù)包最大長度的差值不小于beacon消息的長度,則生成一個beacon消息并將其和數(shù)據(jù)包(或“數(shù)據(jù)-beacon聚合包”)聚合成一個“數(shù)據(jù)-beacon聚合包”發(fā)送出去。如果節(jié)點在可生成beacon消息的時間范圍內(nèi)沒有生成beacon消息,則在該時間范圍結(jié)束后,立即生成一個beacon消息并向離自己最近的rsu發(fā)送。
附圖7為數(shù)據(jù)包與beacon消息自適應(yīng)聚合包格式圖。
type值為新的type值,表示數(shù)據(jù)包與beacon消息自適應(yīng)聚合包。flag值為聚合包中beacon包的個數(shù)。
附圖8為路徑偏離時重新尋路機制示意圖。
虛線箭頭所示路徑表示原機制計算路徑,實線箭頭表示改進機制計算路徑,實線空心箭頭表示車輛實際行進方向。
附圖9為路徑偏離時重新尋路機制流程圖。
數(shù)據(jù)包攜帶有源節(jié)點計算出的、預(yù)定經(jīng)過的最短路徑的信息,由該路徑上的節(jié)點作為中間節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包;攜帶數(shù)據(jù)包的節(jié)點周期性判斷自己是否已經(jīng)脫離了數(shù)據(jù)包中裝載的預(yù)設(shè)最短路徑,如果已經(jīng)脫離,則啟動重新尋路操作,重新在地圖上尋找通往rsu(或目的節(jié)點)的最短路徑(這條路徑需要避開原有路徑上節(jié)點馬上就要經(jīng)過但沒有經(jīng)過的那一段道路);然后用該最短路徑的信息替換掉數(shù)據(jù)包中原有的最短路徑信息,在新的最短路徑上繼續(xù)使用貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)該數(shù)據(jù)包。
附圖10為基于消息聚合的車載自組網(wǎng)高效可靠路由算法組成圖。
“beacon消息自適應(yīng)聚合”新機制工作在“控制消息生成、傳輸與處理”部分,“節(jié)點偏離最短路徑時重新尋路”新機制工作在“數(shù)據(jù)包傳輸與處理”部分,而“數(shù)據(jù)包與beacon消息自適應(yīng)聚合”新機制則同時工作在“控制消息生成、傳輸與處理”和“數(shù)據(jù)包傳輸與處理”兩部分。
具體實施方式
本發(fā)明適用于使用了路側(cè)單元rsu、網(wǎng)絡(luò)節(jié)點和rsu能夠利用地圖信息計算到目的節(jié)點的最短路徑的車載自組網(wǎng)場合。
一個具體的實施方式如下:
(一)實施條件
在一個覆蓋范圍可多達數(shù)百km2車載自組網(wǎng)中,有一個或多個rsu以及多個由車載無線通信設(shè)備充當(dāng)?shù)钠胀ü?jié)點(通常簡稱為“節(jié)點”)。rsu之間的通信用一套專門的體系和機制(如有線網(wǎng)絡(luò)及其路由機制),節(jié)點之間以及節(jié)點和rsu之間的通信使用無線多跳網(wǎng)絡(luò)形式。每個節(jié)點都能夠知道自己的位置信息(如借助gps系統(tǒng));每個節(jié)點都有電子地圖工具(如百度地圖),知道每個rsu的具體位置,并且能夠在地圖上計算出到rsu的最短路徑。業(yè)務(wù)數(shù)據(jù)在節(jié)點之間傳送。rsu數(shù)量≥1,節(jié)點數(shù)量≥2。
(二)實施方式
實施方式分為“控制消息生成、傳輸與處理”和“數(shù)據(jù)包傳輸與處理”兩部分,二者的操作在網(wǎng)絡(luò)運行時間內(nèi)持續(xù)地進行,并且在時序上有交錯。
1.控制消息生成、傳輸與處理
步驟1.每個節(jié)點建立一張l表,用于記錄自己和滿足距離要求的其它節(jié)點的位置、運動速度、運動方向和時間戳等信息。距離要求為:節(jié)點間距離<當(dāng)前節(jié)點與最近的rsu的距離。
步驟2.每個節(jié)點建立一張鄰居表,用于記錄在自己通信范圍內(nèi)的節(jié)點(即鄰居節(jié)點)的信息,包括節(jié)點位置、運動速度、運動方向和時間戳等信息。
步驟3.每個節(jié)點設(shè)置一個自身位置的更新周期值tl,tl=1s(缺省值);每當(dāng)計時時間到達tl時,節(jié)點便用自己最新的位置信息去更新l表中自己的位置信息。
步驟4.每個節(jié)點設(shè)置一個hello消息的廣播周期值thello,thello=2s(缺省值);每當(dāng)計時時間到達thello時,便生成一個包含自己的id(或者地址)和l表的內(nèi)容的hello消息,然后在1跳范圍內(nèi)廣播該hello消息。
步驟5.每個節(jié)點設(shè)置一個beacon消息的生成周期值tbeacon,tbeacon=2s(缺省值),以該值作為beacon消息生成周期的均值周期性地生成和發(fā)送beacon消息,但讓beacon消息的生成時間可以在一定范圍內(nèi)隨機變化(此范圍對應(yīng)的時間段稱為“beacon消息生成時段”)設(shè)置該時間段=0.2t(缺省值),分布為0.9tbeacon~1.1tbeacon(缺省值)。beacon消息包含節(jié)點的id、位置信息、時間戳等。
步驟6.一個節(jié)點如果收到了其它節(jié)點發(fā)來的beacon消息或聚合beacon消息,根據(jù)本發(fā)明提出的“beacon消息自適應(yīng)聚合”新機制,它會首先判斷網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段;如果是,則生成一個beacon消息,接著將收到的beacon消息(或聚合beacon消息)和自己生成的beacon消息進行聚合,形成一個聚合beacon消息,然后,在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將聚合beacon消息發(fā)給該鄰居節(jié)點;如果未進入beacon消息生成時段,則直接在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,然后將收到的beacon消息(或聚合beacon消息)發(fā)給該鄰居節(jié)點。
步驟7.一個節(jié)點如果有數(shù)據(jù)包需要發(fā)往最近的rsu,或者收到其它節(jié)點發(fā)來的需轉(zhuǎn)發(fā)的數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包),根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,它會首先判斷:網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段?數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包)的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則生成一個beacon消息并將其和數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包)聚合成一個“數(shù)據(jù)-beacon聚合包”,然后,在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)-beacon聚合包發(fā)給該鄰居節(jié)點;如果二者未同時成立且待發(fā)的包是數(shù)據(jù)包,則按“數(shù)據(jù)包傳輸與處理”的相關(guān)步驟(數(shù)據(jù)包如果是自己產(chǎn)生的按步驟2,如果是收到的則按步驟3)進行操作;否則,直接在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)包(或數(shù)據(jù)-beacon聚合包)發(fā)給該鄰居節(jié)點。
步驟8.當(dāng)beacon消息生成時段結(jié)束時,每個節(jié)點都判斷:在beacon消息生成時段內(nèi)自己是否生成了beacon消息?如果沒有,則在該時段結(jié)束的時刻,該節(jié)點生成一個beacon消息,然后在鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將beacon消息發(fā)送給該鄰居節(jié)點。
步驟9.一個節(jié)點如果收到hello消息,則從中取出源節(jié)點id、l表內(nèi)容等,更新自己的鄰居表和l表;在更新l表時,對于節(jié)點間距>當(dāng)前節(jié)點與最近的rsu的距離的節(jié)點,它們的信息不保留在l表中。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。
2.數(shù)據(jù)包傳輸與處理
步驟1.一個節(jié)點的網(wǎng)絡(luò)層如果收到自己上層下傳的數(shù)據(jù)包,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,先判斷:網(wǎng)絡(luò)運行時間是否進入了自己的beacon消息生成時段0.9tbeacon~1.1tbeacon?數(shù)據(jù)包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟(步驟7)進行操作;否則,查詢l表,看該數(shù)據(jù)包的目的節(jié)點是否在l表中;如果在,表明可以直接向目的節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,則從鄰居表中找出與目的節(jié)點距離最近的鄰居節(jié)點,將數(shù)據(jù)包發(fā)給該鄰居節(jié)點,然后轉(zhuǎn)步驟3;如果不在,則需將數(shù)據(jù)包發(fā)給最近的rsu,執(zhí)行下一步。
步驟2.節(jié)點利用地圖計算出一條到離自己最近的rsu的、由道路組成的最短路徑(路徑可由分叉路口的坐標(biāo)序列來表示),然后將該最短路徑的信息裝入數(shù)據(jù)包;如果遇到該最短路徑上離rsu更近的節(jié)點,則將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有遇到合適的下一跳節(jié)點,則會攜帶著數(shù)據(jù)包。在攜帶數(shù)據(jù)包運動的過程中,節(jié)點會采用本發(fā)明提出的“節(jié)點偏離最短路徑時重新尋路機制”新機制,周期性判斷自己是否已經(jīng)脫離了之前算出的最短路徑,如果已經(jīng)脫離,則啟動重新尋路操作,根據(jù)地圖信息再次計算通往目的節(jié)點的最短路徑(這條路徑需要避開原有路徑上節(jié)點馬上就要經(jīng)過但沒有經(jīng)過的那一段道路),然后用該最短路徑的信息替換掉數(shù)據(jù)包中原有的最短路徑信息,在新的最短路徑上使用貪婪轉(zhuǎn)發(fā)的策略繼續(xù)轉(zhuǎn)發(fā)該數(shù)據(jù)包。
步驟3.一個節(jié)點的網(wǎng)絡(luò)層如果收到其它節(jié)點發(fā)來的數(shù)據(jù)包,首先從數(shù)據(jù)包中取出目的節(jié)點判斷是普通節(jié)點還是rsu;如果是普通節(jié)點,則從鄰居表中找出與目的節(jié)點距離最近的鄰居節(jié)點,將數(shù)據(jù)包發(fā)給該鄰居節(jié)點。如果是rsu,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,節(jié)點判斷:網(wǎng)絡(luò)運行時間是否進入了beacon消息生成時段?數(shù)據(jù)包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟進行操作;如果二者未同時成立,則從數(shù)據(jù)包中取出最短路徑信息,在該路徑上尋找離rsu更近的節(jié)點,如果找到則將數(shù)據(jù)包轉(zhuǎn)發(fā)給它,如果沒找到則攜帶著數(shù)據(jù)包,直到遇到離rsu更近的節(jié)點或rsu。
步驟4.一個節(jié)點的網(wǎng)絡(luò)層如果收到其它節(jié)點發(fā)來的“數(shù)據(jù)-beacon聚合包”,則根據(jù)本發(fā)明提出的“數(shù)據(jù)包和beacon消息自適應(yīng)聚合”新機制,節(jié)點判斷:網(wǎng)絡(luò)運行時間是否進入了beacon消息生成時段?數(shù)據(jù)-beacon聚合包的長度與數(shù)據(jù)包最大長度的差值是否不小于beacon消息的長度?如果二者同時成立,則按照“控制消息生成、傳輸與處理”部分的相關(guān)步驟(步驟7)進行操作;如果二者未同時成立,則從鄰居表中找出與最近的rsu距離最短的鄰居節(jié)點,將數(shù)據(jù)-beacon聚合包發(fā)給該鄰居節(jié)點。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。
步驟5.如果rsu收到一個普通節(jié)點發(fā)來的包,它先判斷包的類型;如果是beacon消息或beacon聚合消息,則轉(zhuǎn)步驟6;如果是數(shù)據(jù)-beacon聚合包,則轉(zhuǎn)步驟7;如果是數(shù)據(jù)包,則轉(zhuǎn)步驟8。
步驟6.rsu從beacon消息或beacon聚合消息中取出節(jié)點的信息(從beacon聚合消息中取信息時用beacon消息內(nèi)容的長度等長度分割beacon聚合消息的負(fù)載部分,便可得到單獨的beacon消息的內(nèi)容),然后存入預(yù)先建立的、用于存儲本區(qū)域節(jié)點信息的“域內(nèi)節(jié)點信息表”。然后轉(zhuǎn)步驟9。
步驟7.rsu從數(shù)據(jù)-beacon聚合包中取出所有的beacon消息(beacon消息放在數(shù)據(jù)-beacon聚合包負(fù)載部分的前部,beacon消息的個數(shù)放在數(shù)據(jù)包頭部的保留字段中,beacon消息內(nèi)容的長度rsu預(yù)先知道),接著從beacon消息中取出節(jié)點的信息,存入“域內(nèi)節(jié)點信息表”;然后,需對數(shù)據(jù)-beacon聚合包中的數(shù)據(jù)包進行處理,轉(zhuǎn)步驟8。
步驟8.rsu取出數(shù)據(jù)包的目的節(jié)點,查詢“域內(nèi)節(jié)點信息表”看目的節(jié)點是否在本區(qū)域;如果不在,則通過rsu之間的通信體系和機制(如由rsu組成的有線骨干網(wǎng)絡(luò)及其路由和數(shù)據(jù)包傳送機制),將數(shù)據(jù)包發(fā)送給鄰近(指在一跳范圍內(nèi))的rsu。如果在,則利用地圖計算出一條到目的節(jié)點的、由道路組成的最短路徑(路徑可由分叉路口的坐標(biāo)序列來表示),然后將該最短路徑的信息裝入數(shù)據(jù)包;如果遇到該最短路徑上離目的節(jié)點更近的節(jié)點,則將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有遇到該最短路徑上合適的下一跳節(jié)點,則會在所有離目的節(jié)點更近的鄰居節(jié)點中選擇一個離目的節(jié)點最近的節(jié)點,然后將數(shù)據(jù)包轉(zhuǎn)發(fā)給它;如果沒有找到離目的節(jié)點更近的鄰居節(jié)點,則會繼續(xù)保存數(shù)據(jù)包,直到遇到合適的下一跳節(jié)點或數(shù)據(jù)包超期被丟棄。
步驟9.如果一個rsu收到鄰近rsu發(fā)來的數(shù)據(jù)包,它首先從數(shù)據(jù)包中取出目的節(jié)點信息,然后查詢“域內(nèi)節(jié)點信息表”看目的節(jié)點是否在本區(qū)域;如果在,則從預(yù)先建立的鄰居表中找出距離目的節(jié)點最近的鄰居節(jié)點,將數(shù)據(jù)包發(fā)給該鄰居節(jié)點;如果不在,則將數(shù)據(jù)包發(fā)給鄰近的其它rsu(用rsu之間的通信體系和機制)。然后,返回步驟1,循環(huán)執(zhí)行,直至網(wǎng)絡(luò)運行結(jié)束。