路由方法、路由模塊、車載終端和車載自組網(wǎng)路由系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種路由方法、路由模塊、
[0002]車載終端和車載自組網(wǎng)路由系統(tǒng)。
【背景技術(shù)】
[0003]車載自組網(wǎng)(Vehicular Ad hoc Network,簡稱VANET)將無線Ad hoc網(wǎng)絡(luò)和無線傳感器網(wǎng)絡(luò)進(jìn)行了結(jié)合,創(chuàng)造性的將自組網(wǎng)在車輛間應(yīng)用,在通信范圍內(nèi),通過建立起來的移動(dòng)網(wǎng)絡(luò),車輛間可以實(shí)時(shí)的交換信息。由于每個(gè)節(jié)點(diǎn)的單跳通信距離很短,因此參與通信的車輛節(jié)點(diǎn)不僅是一個(gè)收發(fā)器還是一個(gè)路由器,網(wǎng)絡(luò)中的車輛采用多跳的方式把數(shù)據(jù)轉(zhuǎn)發(fā)給更遠(yuǎn)的車輛。VANET在交通擁塞控制、交通安全、出行規(guī)劃以及旅途娛樂方面具有廣闊的前景,VANET路由協(xié)議為這些應(yīng)用提供了數(shù)據(jù)通信支持。
[0004]由于車載網(wǎng)絡(luò)拓?fù)渥兓l繁,車輛節(jié)點(diǎn)移動(dòng)速度快,路由技術(shù)成為了車載自組網(wǎng)中的重大挑戰(zhàn)之一。目前,在車載自組網(wǎng)中使用的路由協(xié)議大致可以分為3類:基于拓?fù)涞穆酚蓞f(xié)議,基于位置的路由協(xié)議,基于地圖的路由協(xié)議。其中,基于位置的路由協(xié)議由于不需要路由表或存儲(chǔ)路徑,每個(gè)節(jié)點(diǎn)僅需要獲知鄰居節(jié)點(diǎn)和目的節(jié)點(diǎn)的位置信息,就可以決定下一跳的節(jié)點(diǎn),大大降低了維護(hù)網(wǎng)絡(luò)拓?fù)湫畔⒌拈_銷,能夠更好的適應(yīng)車載網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)的變化,因此,在車載網(wǎng)絡(luò)中基于位置的路由協(xié)議使用的也最廣泛。
[0005]無狀態(tài)貪婪周邊路由(GreedyPerimeter stateless Routing,簡稱GPSR)協(xié)議是經(jīng)典的基于位置的路由協(xié)議。按照GPSR協(xié)議,當(dāng)源節(jié)點(diǎn)需要向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),先采用貪婪轉(zhuǎn)發(fā)模式,在所有自己的鄰居節(jié)點(diǎn)中尋找一個(gè)距離目的節(jié)點(diǎn)最近的節(jié)點(diǎn)作為數(shù)據(jù)的下一跳,然后將數(shù)據(jù)傳送給該鄰居節(jié)點(diǎn)。下一跳節(jié)點(diǎn)如果不是目的節(jié)點(diǎn),下一跳節(jié)點(diǎn)也遵循同樣的方法來繼續(xù)尋找下一跳,該過程一直重復(fù)迸行,直到數(shù)據(jù)到達(dá)目的節(jié)點(diǎn)為止。當(dāng)出現(xiàn)沒有比該節(jié)點(diǎn)更接近目的節(jié)點(diǎn)的節(jié)點(diǎn),但該節(jié)點(diǎn)的無線范圍不能直接將數(shù)據(jù)發(fā)送到目的節(jié)點(diǎn)的情況時(shí),數(shù)據(jù)無法傳輸,GPSR協(xié)議會(huì)改為周邊轉(zhuǎn)發(fā)模式,根據(jù)右手法則沿其他可達(dá)節(jié)點(diǎn)繼續(xù)傳輸數(shù)據(jù)來解決這種情況。但是這樣增加了節(jié)點(diǎn)的跳數(shù),增加了路由開銷,加大了數(shù)據(jù)包傳輸?shù)难舆t時(shí)間,而且在節(jié)點(diǎn)密度比較稀疏的情況下,GPSR不能保證存在可通信的節(jié)點(diǎn)實(shí)施周邊轉(zhuǎn)發(fā)。
[0006]目前,有一些改進(jìn)的路由協(xié)議,通過結(jié)合一些可以從汽車獲取的信息,例如位置信息、電子地圖信息、計(jì)劃行駛路徑等,使用這些信息能夠改善路由機(jī)制的性能,但是,這種方式對汽車本身能夠提供的信息具有很強(qiáng)的依賴性,并且這些信息無法在不同區(qū)域的汽車之間傳遞。也有一些路由協(xié)議,使用移動(dòng)蜂窩網(wǎng)絡(luò)為VANET提供備用鏈接,當(dāng)通過VANET無法將信息傳送給目的節(jié)點(diǎn)時(shí),借助蜂窩網(wǎng)絡(luò)進(jìn)行傳輸,這種方式占用了蜂窩網(wǎng)絡(luò)的網(wǎng)絡(luò)資源。
[0007]因此,提供一種鏈路中斷率較低、傳輸效率較高、占用蜂窩網(wǎng)絡(luò)資源較小的車載自組網(wǎng)路由方法是本領(lǐng)域亟需解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明提供一種路由方法、路由模塊、車載終端和車載自組網(wǎng)路由系統(tǒng),可有效降低數(shù)據(jù)傳遞過程中的鏈路中斷率和對蜂窩網(wǎng)絡(luò)資源的占用率,同時(shí)還能提高數(shù)據(jù)傳輸效率。
[0009]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種路由方法,用于在車載自組網(wǎng)中提供路由策略,包括:
[0010]判斷當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn),所述鄰居節(jié)點(diǎn)為與所述當(dāng)前節(jié)點(diǎn)的處于相同街道且與所述當(dāng)前節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)的最大通信距離的節(jié)占.
[0011]若判斷出所述當(dāng)前節(jié)點(diǎn)的所述鄰居節(jié)點(diǎn)中存在所述目的節(jié)點(diǎn)時(shí),則將所述當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送給所述目的節(jié)點(diǎn);
[0012]若判斷出所述當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中不存在所述目的節(jié)點(diǎn)時(shí),則判斷是否存在所述鄰居節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離;
[0013]若判斷出存在所述鄰居節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則選取與所述目的節(jié)點(diǎn)之間的距離最小的一個(gè)鄰居節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),并以所述下一跳節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn),重新執(zhí)行所述判斷當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn)的步驟;
[0014]若判斷出不存在所述鄰居節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則判斷是否存在所述當(dāng)前節(jié)點(diǎn)的相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離,所述相鄰街道節(jié)點(diǎn)為與所述當(dāng)前節(jié)點(diǎn)所處的街道相交叉的街道上的節(jié)點(diǎn);
[0015]若判斷出存在所述相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則采用Di jkstra算法選取下一跳街道;
[0016]基于貪婪算法從下一跳街道中選取下一跳節(jié)點(diǎn),并以所述下一跳節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn),重新執(zhí)行所述判斷當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn)的步驟。
[0017]可選地,若判斷出不存在所述相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則將所述當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包緩存。
[0018]可選地,在所述當(dāng)前節(jié)點(diǎn)將數(shù)據(jù)包緩存的步驟之后,還包括:
[0019]判斷所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的總時(shí)間是否超過第一預(yù)設(shè)時(shí)間;
[0020]若判斷出所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的時(shí)間超過第一預(yù)設(shè)時(shí)間時(shí),則將所述當(dāng)前節(jié)點(diǎn)緩存的所述數(shù)據(jù)包丟棄;
[0021]若判斷出所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的時(shí)間沒有第一超過預(yù)設(shè)時(shí)間時(shí),則判斷所述當(dāng)前節(jié)點(diǎn)是否存在鄰居節(jié)點(diǎn);
[0022]若判斷出所述當(dāng)前節(jié)點(diǎn)存在鄰居節(jié)點(diǎn)時(shí),則重新執(zhí)行所述判斷當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn)的步驟;
[0023]若判斷出所述當(dāng)前節(jié)點(diǎn)不存在鄰居節(jié)點(diǎn)時(shí),則經(jīng)過第二預(yù)設(shè)時(shí)間后重新執(zhí)行所述判斷所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的總時(shí)間是否超過所述第一預(yù)設(shè)時(shí)間的步驟。
[0024]為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種路由模塊,用于在車載自組網(wǎng)中提供路由策略,包括:
[0025]第一判斷單元,用于在當(dāng)前節(jié)點(diǎn)接收到數(shù)據(jù)包后,判斷當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn),所述鄰居節(jié)點(diǎn)為與所述當(dāng)前節(jié)點(diǎn)的處于相同街道且與所述當(dāng)前節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)的最大通信距離的節(jié)點(diǎn);
[0026]發(fā)送單元,用于在所述第一判斷單元判斷出所述當(dāng)前節(jié)點(diǎn)的所述鄰居節(jié)點(diǎn)中存在所述目的節(jié)點(diǎn)時(shí),則將所述當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送給所述目的節(jié)點(diǎn);
[0027]第二判斷單元,用于在所述第一判斷單元判斷出所述當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中不存在所述目的節(jié)點(diǎn)時(shí),則判斷是否存在所述鄰居節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離;
[0028]第一選取單元,用于在所述第二判斷單元判斷出存在所述鄰居節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則選取與所述目的節(jié)點(diǎn)之間的距離最小的一個(gè)鄰居節(jié)點(diǎn)作為下一跳節(jié)點(diǎn);
[0029]第三判斷單元,用于在所述第二判斷單元判斷出不存在所述鄰居節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則判斷是否存在所述當(dāng)前節(jié)點(diǎn)的相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離,所述相鄰街道節(jié)點(diǎn)為與所述當(dāng)前節(jié)點(diǎn)所處的街道相交叉的街道上的節(jié)點(diǎn);
[0030]第二選取單元,用于在所述第三判斷單元判斷出存在所述相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則采用Di jkstra算法選取出下一跳街道;
[0031]第三選取單元,用于基于貪婪算法從下一跳街道中選取出下一跳節(jié)點(diǎn);
[0032]所述發(fā)送單元還用于在所述第一選取單元或所述第三選取單元選取出所述下一跳節(jié)點(diǎn)時(shí),將所述當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送給所述下一跳節(jié)點(diǎn)。
[0033]可選地,還包括:
[0034]緩存單元,用于在所述第三判斷單元判斷出不存在所述相鄰街道節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離小于所述當(dāng)前節(jié)點(diǎn)與所述目的節(jié)點(diǎn)之間的距離時(shí),則將所述當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包緩存。
[0035]可選地,還包括:
[0036]第四判斷單元,用于判斷所述緩存單元緩存所述數(shù)據(jù)包的總時(shí)間是否超過第一預(yù)設(shè)時(shí)間;
[0037]第五判斷單元,用于在所述第四判斷單元判斷出所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的時(shí)間沒有第一超過預(yù)設(shè)時(shí)間時(shí),則判斷所述當(dāng)前節(jié)點(diǎn)是否存在鄰居節(jié)點(diǎn);
[0038]所述第一判斷單元還用于在所述第五判斷單元在判斷出所述當(dāng)前節(jié)點(diǎn)存在鄰居節(jié)點(diǎn)時(shí),則執(zhí)行判斷所述當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中是否存在目的節(jié)點(diǎn)的步驟。
[0039]所述緩存單元還用于在所述第四判斷單元判斷出所述當(dāng)前節(jié)點(diǎn)緩存所述數(shù)據(jù)包的時(shí)間超過第一預(yù)設(shè)時(shí)間時(shí),則將緩存的所述數(shù)據(jù)包丟棄。
[0040]為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種車載終端,包括:路由模塊,所述路由模塊采用上述的路由模塊。
[0041]可選地,還包括:
[0042]信息讀取模塊,用于周期性的讀取車輛自身的節(jié)點(diǎn)信息,所述節(jié)點(diǎn)信息包括:車輛身份標(biāo)識(shí)、車輛位置信息和車輛所處街道標(biāo)識(shí);
[0043]無線通信模塊,用于將車輛自身的所述節(jié)點(diǎn)信息上傳至網(wǎng)絡(luò)側(cè)設(shè)備,并接收所述網(wǎng)絡(luò)側(cè)設(shè)備廣播的其他車輛的節(jié)點(diǎn)信息;
[0044]所述路由模塊根據(jù)所述車輛自身的節(jié)點(diǎn)信息、所述其他車輛的節(jié)點(diǎn)信息和目的節(jié)點(diǎn)的節(jié)點(diǎn)信息制定路由策略。
[0045]可選地,還包括:
[0046]信息存儲(chǔ)模塊,用于存儲(chǔ)所述信息讀取模塊獲取的所述車輛自身的節(jié)點(diǎn)信息和所述無線通信模塊接