專利名稱:用于車(chē)載Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種新型網(wǎng)絡(luò)架構(gòu)中的數(shù)據(jù)傳輸方法,確切地說(shuō),涉及一種用 于城市道路環(huán)境的車(chē)載Adhoc網(wǎng)絡(luò)中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法,屬于移動(dòng)通信中 移動(dòng)自組織網(wǎng)絡(luò)應(yīng)用的技術(shù)領(lǐng)域。
背景技術(shù):
車(chē)載Ad Hoc網(wǎng)絡(luò)VANET ( vehicle ad hoc networks )是一種特殊的自組織 移動(dòng)Ad Hoc網(wǎng)絡(luò),該網(wǎng)絡(luò)的節(jié)點(diǎn)是由裝備無(wú)線收發(fā)裝置的機(jī)動(dòng)車(chē)輛所組成。 近年來(lái),由于城市車(chē)輛的迅速增加造成交通堵塞的現(xiàn)象日趨嚴(yán)重,甚至交通事 故頻頻發(fā)生。因此,使用車(chē)載網(wǎng)絡(luò)進(jìn)行車(chē)輛之間或控制臺(tái)與各個(gè)車(chē)輛之間的通 信,以疏通交通流量或提高物流企業(yè)的功效而對(duì)該車(chē)載Ad Hoc網(wǎng)絡(luò)開(kāi)展研究 和應(yīng)用已經(jīng)逐漸成為一個(gè)研究熱點(diǎn)。由于車(chē)輛的高速移動(dòng)以及街道障礙物阻擋 等多種原因,車(chē)載Ad hoc網(wǎng)絡(luò)具有不同于普通Ad hoc網(wǎng)絡(luò)的顯著特點(diǎn),其 中之一是網(wǎng)絡(luò)分割現(xiàn)象特別嚴(yán)重,在一個(gè)高速移動(dòng)、且各個(gè)節(jié)點(diǎn)的趨向不確定 的環(huán)境中,要想隨時(shí)隨地維持網(wǎng)絡(luò)結(jié)構(gòu)的拓樸信息勢(shì)必導(dǎo)致網(wǎng)絡(luò)負(fù)載顯著增加, 使得路由問(wèn)題更加復(fù)雜。
但是,由于車(chē)載通信設(shè)備可以通過(guò)其發(fā)動(dòng)機(jī)獲得電力支持,能源供應(yīng)比較充 足,而且車(chē)輛的承載空間可以確保天線的尺寸和裝載其他額外的通信設(shè)備不會(huì)受 到限制,這樣就能夠確保車(chē)載AdHoc網(wǎng)絡(luò)的節(jié)點(diǎn)具有強(qiáng)大的信息處理和海量存 儲(chǔ)等多種功能。再者,由于在城市環(huán)境中,車(chē)輛必須沿著既定的道路前進(jìn)或后退, 這就使得其運(yùn)動(dòng)軌跡具有一定的規(guī)律性和可預(yù)測(cè)性,即人們能夠預(yù)測(cè)車(chē)載Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)的下一時(shí)刻位置。再者,發(fā)展迅速的全球定位服務(wù)GPS (global positioningsystem)系統(tǒng)能夠?yàn)檐?chē)載AdHoc網(wǎng)絡(luò)節(jié)點(diǎn)提供精確定位和精準(zhǔn)的時(shí)鐘 信息,有利于獲取車(chē)載Ad Hoc網(wǎng)絡(luò)各節(jié)點(diǎn)獲取自身的位置信息和實(shí)現(xiàn)時(shí)鐘同步。
目前,如何結(jié)合車(chē)載AdHoc網(wǎng)絡(luò)的上述特點(diǎn),找到一種適應(yīng)于城市環(huán)境 的車(chē)載Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)包轉(zhuǎn)發(fā)的方法是一個(gè)需要解決的重要的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種適應(yīng)于城市道^各環(huán)境的車(chē)載Ad hoc網(wǎng) 絡(luò)中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法,該方法充分利用車(chē)載Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)的特性, 在數(shù)據(jù)包的遞交率、時(shí)延、平均跳數(shù)、物理層發(fā)送的總數(shù)據(jù)量等指標(biāo)上都優(yōu) 于目前使用的其他算法,且操作步驟簡(jiǎn)單、易行,計(jì)算工作的復(fù)雜度低,能 夠滿足實(shí)時(shí)傳輸?shù)囊蟆?br>
為了達(dá)到上述目的,本發(fā)明提供了一種適應(yīng)于城市環(huán)境的車(chē)載Adhoc網(wǎng)絡(luò) 中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法,其特征在于,包括下列操作步驟
(1 )把城市的道路環(huán)境建模為具有權(quán)重值的無(wú)向圖在該無(wú)向圖中,端點(diǎn) 集是道路的岔路口的集合,邊集是兩個(gè)岔路口之間的街道的集合;車(chē)輛在該 無(wú)向圖中的移動(dòng)是沿著邊從一個(gè)端點(diǎn)移動(dòng)到另一個(gè)端點(diǎn),街道的權(quán)重值取決于 街道交通流量信息和街道的物理長(zhǎng)度;
(2)對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新根據(jù)目的節(jié)點(diǎn) 的位置信息和城市道路環(huán)境的實(shí)時(shí)建模信息,對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn) 行動(dòng)態(tài)選擇和更新,持有數(shù)據(jù)包的節(jié)點(diǎn)在岔路口區(qū)域更新數(shù)據(jù)包中的岔路口 序列;
(3 )每個(gè)節(jié)點(diǎn)維持一個(gè)鄰居列表,并預(yù)測(cè)車(chē)輛節(jié)點(diǎn)位置和維護(hù)鄰居列表 利用街道上移動(dòng)的車(chē)輛所在地理位置具有可預(yù)測(cè)性的特點(diǎn)和預(yù)測(cè)車(chē)輛節(jié)點(diǎn) 位置的方法,每個(gè)節(jié)點(diǎn)預(yù)測(cè)其鄰居節(jié)點(diǎn)的當(dāng)前位置,并及時(shí)更新其鄰居列表, 以便減少信息維護(hù)工作量,并提高鄰居列表信息的有效性;
(4)目的節(jié)點(diǎn)更新其位置消息當(dāng)目的節(jié)點(diǎn)移動(dòng)到新的街道上后,向中間 節(jié)點(diǎn)廣播其位置更新消息;中間節(jié)點(diǎn)緩存該位置更新消息或用該位置更新消息
更新原有記錄后,轉(zhuǎn)發(fā)該位置更新消息;當(dāng)需要時(shí),中間節(jié)點(diǎn)利用目的節(jié)點(diǎn)的 最新位置信息和實(shí)時(shí)建模信息進(jìn)行岔路口的動(dòng)態(tài)選擇和數(shù)據(jù)包的轉(zhuǎn)發(fā);
(5 )基于貪婪轉(zhuǎn)發(fā)策略對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)中間節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包而進(jìn) 行下一跳選擇之前,先利用位置預(yù)測(cè)算法查看目的節(jié)點(diǎn)是否為其鄰居節(jié)點(diǎn),如 果是,則直接把數(shù)據(jù)包發(fā)給目的節(jié)點(diǎn);否則,根據(jù)中間節(jié)點(diǎn)位于岔路口區(qū)域還 是兩個(gè)岔路口之間的道路上,分別執(zhí)行相應(yīng)的貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包
所述步驟(1)的無(wú)向圖中,分別采用/e"g決(w,")和," 爐c(w,")表示盆^各口 m 和n之間的街道物理長(zhǎng)度及其交通流量信息,后者的量綱是單位時(shí)間內(nèi)經(jīng)過(guò)該 街道的車(chē)輛數(shù)量;設(shè)置岔^各口 m和n之間的雄f道權(quán)值為 w/g似(w,w) = /e"gAaO,")〃ra」^^0,"),式中,兩個(gè)調(diào)整系數(shù)a和/ 都大于或等于 零,該兩個(gè)數(shù)值分別決定街道的物理長(zhǎng)度和交通流量信息在選擇中間轉(zhuǎn)發(fā)節(jié)點(diǎn) 時(shí)所考慮的因素的份量大小,a = 0時(shí)表示街道的權(quán)值只取決于交通流量信息, / = 0時(shí)表示街道的權(quán)值僅取決于街道的物理長(zhǎng)度。
所述步驟(2)中,由源節(jié)點(diǎn)到目的節(jié)點(diǎn)的轉(zhuǎn)發(fā)數(shù)據(jù)包過(guò)程中,所經(jīng)歷的
多個(gè)岔路口組成一個(gè)盆路口序列;且為適應(yīng)城市道路環(huán)境的實(shí)時(shí)建模信息, 對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)包路徑中的每個(gè)岔路口都要逐個(gè)計(jì)算和動(dòng)態(tài)選擇;每個(gè)數(shù)據(jù)包的 包頭中含有兩個(gè)岔路口標(biāo)識(shí)當(dāng)前岔路口 CJ和前一岔i 各口 PJ,前者是數(shù)據(jù) 包正在走向的岔路口標(biāo)識(shí),后者為該數(shù)據(jù)包剛剛離開(kāi)的岔路口標(biāo)識(shí)。
所述對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新的方法是當(dāng)產(chǎn)生 數(shù)據(jù)包的源節(jié)點(diǎn)或持有數(shù)據(jù)包的中間節(jié)點(diǎn)走進(jìn)某個(gè)岔路口區(qū)域時(shí),要根據(jù) 目的節(jié)點(diǎn)的位置信息,按照?qǐng)D論中的最小花費(fèi)算法動(dòng)態(tài)選擇下一個(gè)岔路口 作為其前進(jìn)方向;優(yōu)先選擇的原則是距離短和車(chē)輛流量密度大的街道;完
成選擇后,持有數(shù)據(jù)包的節(jié)點(diǎn)要更新其岔路口序列把剛剛選擇的岔路口 更新為當(dāng)前盆路口 CJ,而把該數(shù)據(jù)包剛經(jīng)過(guò)的岔路口更新為前一岔路口 PJ。
所述岔路口區(qū)域是指車(chē)載Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)到達(dá)某個(gè)岔路口的距離 長(zhǎng)度小于設(shè)定數(shù)值的地域范圍。
所述鄰居節(jié)點(diǎn)是指兩個(gè)節(jié)點(diǎn)之間相互在對(duì)方的通信范圍之內(nèi),且沒(méi)有被建 筑物阻擋時(shí),則稱該兩個(gè)節(jié)點(diǎn)具有鄰居關(guān)系,或者說(shuō)其中一個(gè)節(jié)點(diǎn)是另外一個(gè)
節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。
所述鄰居列表的信息是通過(guò)相鄰的節(jié)點(diǎn)間廣播問(wèn)候消息HELLO完成交互 的,該HELLO消息包括節(jié)點(diǎn)標(biāo)識(shí)ID、節(jié)點(diǎn)當(dāng)前所在的地理位置、時(shí)間戳、 節(jié)點(diǎn)的當(dāng)前速度及其移動(dòng)方向;收到鄰居節(jié)點(diǎn)發(fā)送來(lái)的HELLO消息后, 節(jié)點(diǎn)對(duì)鄰居列表中的相關(guān)信息進(jìn)行更新;為減少HELLO消息發(fā)送頻率和 提高鄰居列表信息的有效性,節(jié)點(diǎn)利用位置預(yù)測(cè)方法對(duì)鄰居列表中的各個(gè)鄰 居節(jié)點(diǎn)的當(dāng)前位置進(jìn)行預(yù)測(cè),并從鄰居列表中刪除已經(jīng)走出當(dāng)前街道的節(jié)點(diǎn); 同時(shí)任何一個(gè)節(jié)點(diǎn)離開(kāi)岔路口區(qū)域時(shí),都要立即廣播發(fā)送一個(gè)聲明該節(jié)點(diǎn)的最 新位置信息的HELLO消息,以便讓其他節(jié)點(diǎn)更新其鄰居列表中該離開(kāi)岔路口 的節(jié)點(diǎn)的信息;
所述車(chē)輛節(jié)點(diǎn)的位置預(yù)測(cè)方法是假設(shè)當(dāng)前時(shí)間為"節(jié)點(diǎn)/的位置是 (x,,y,),其速度是v,,走向岔路口 B的位置坐標(biāo)是(&,力),前一個(gè)岔路口 A
位置坐標(biāo)是(x^,:o; cfo(A萬(wàn))是兩個(gè)岔路口 ^到萬(wàn)的距離;則在?+&,其中
A"cfo(/,s)/v,時(shí)刻,該節(jié)點(diǎn)仍然在該雍f道上移動(dòng)的位置坐標(biāo)是
(x,+A"v,x(xs—x》/cfoCS,爿),y,+A"v,xOs-^)/flfe(5,), 而在"Af , 其中 A,〉^(/,5)/v,時(shí)刻,該節(jié)點(diǎn)/可能已經(jīng)走出當(dāng)前街道而進(jìn)入另一條街道上。
當(dāng)中間節(jié)點(diǎn)位于岔路口區(qū)域時(shí),所述貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包的方法是 根據(jù)中間節(jié)點(diǎn)的鄰居列表進(jìn)行位置預(yù)測(cè),從走向當(dāng)前岔路口的鄰居節(jié)點(diǎn)中選擇 其中距離當(dāng)前岔路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn);如果沒(méi)有找到相應(yīng)的節(jié)點(diǎn), 則把數(shù)據(jù)包暫存到緩存中,再使用探尋算法周期性地尋找是否有新的節(jié)點(diǎn)走進(jìn) 其通信范圍;如果該中間節(jié)點(diǎn)離開(kāi)岔路口區(qū)域但仍然沒(méi)有找到一個(gè)合適的鄰居 節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),則用該中間節(jié)點(diǎn)離開(kāi)的岔路口和走向的岔路口分別替換數(shù)據(jù) 包中的當(dāng)前岔路口和前一岔路口;該方法的具體操作步驟如下
(5A)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置,并 從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn);
(5B)從鄰居列表中走向當(dāng)前岔路口的各鄰居節(jié)點(diǎn)中,查找距離當(dāng)前盆路
口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5D),否則, 順序執(zhí)行步驟(5C);
(5C)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié)點(diǎn) 走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5A),否則,結(jié)束本跳操作;
(5D)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。
當(dāng)中間節(jié)點(diǎn)位于兩個(gè)岔路口之間的道路上時(shí),所述貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)
據(jù)包的方法是根據(jù)中間節(jié)點(diǎn)的鄰居列表選擇距離當(dāng)前岔路口最近的節(jié)點(diǎn)作
為下一跳節(jié)點(diǎn);如杲?jīng)]有找到相應(yīng)的節(jié)點(diǎn),就把數(shù)據(jù)包暫存到緩存中,使用
探尋算法周期性地探尋是否有新的節(jié)點(diǎn)走進(jìn)它的通信范圍;該方法的具體操 作步驟如下
(5a)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置, 并從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn);
(5b )從鄰居列表中查找距離當(dāng)前岔路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn), 若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5d),否則,順序執(zhí)行步驟(5c);
(5c)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié) 點(diǎn)走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5a),否則,結(jié)束本跳操作;
(5d)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。 所述探尋算法的具體操作內(nèi)容是
A、 持有數(shù)據(jù)包的節(jié)點(diǎn)廣播一個(gè)探尋請(qǐng)求消息,該探尋請(qǐng)求消息中包含該 節(jié)點(diǎn)的當(dāng)前位置信息和當(dāng)前盆路口 ,并設(shè)置一個(gè)定時(shí)器;
B、 在定時(shí)器超時(shí)之前,如果有節(jié)點(diǎn)接收到該探尋請(qǐng)求,并且其位置位于 持有數(shù)據(jù)包的節(jié)點(diǎn)和當(dāng)前岔路口之間,則該節(jié)點(diǎn)立即返回探尋響應(yīng)消息,該響 應(yīng)消息中包含收到探尋請(qǐng)求節(jié)點(diǎn)的ID、該收到探尋請(qǐng)求節(jié)點(diǎn)的地理位置信息、 當(dāng)前速度及其移動(dòng)方向;持有數(shù)據(jù)包的節(jié)點(diǎn)接收到探尋響應(yīng)消息后,提取探 尋響應(yīng)消息中的相關(guān)數(shù)據(jù)并更新鄰居列表;并在定時(shí)器到達(dá)設(shè)定時(shí)間后,結(jié)束 本次探尋操作,探尋成功;
C、 在定時(shí)器超時(shí)之前,如果沒(méi)有任何響應(yīng)消息,這時(shí)持有數(shù)據(jù)包的節(jié)點(diǎn)
可能走到一個(gè)網(wǎng)絡(luò)的邊緣,即出現(xiàn)網(wǎng)絡(luò)分割現(xiàn)象;此時(shí),該持有數(shù)據(jù)包的節(jié) 點(diǎn)將延遲一段時(shí)間后重新返回執(zhí)行步驟A的操作;若重復(fù)執(zhí)行步驟A的操作達(dá) 到設(shè)定的次數(shù),仍未探尋成功,則該持有數(shù)據(jù)包的節(jié)點(diǎn)丟棄數(shù)據(jù)包,探尋失敗。 本發(fā)明的優(yōu)點(diǎn)和效果是采用仿真工具NS2對(duì)本發(fā)明方法進(jìn)行的大量仿 真實(shí)施試驗(yàn)結(jié)果表明,本發(fā)明方法在遞交率、時(shí)延、平均跳數(shù)、物理層發(fā)送 的總數(shù)據(jù)量等指標(biāo)上都優(yōu)于目前使用的其他算法,且操作步驟簡(jiǎn)單、易行,計(jì) 算工作復(fù)雜度低,能夠滿足實(shí)時(shí)傳輸?shù)囊蟆?br>
圖1是本發(fā)明適應(yīng)于城市環(huán)境的車(chē)載Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法 操作步驟流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作 進(jìn)一步的詳細(xì)描述。
本發(fā)明是一種適應(yīng)于城市環(huán)境的車(chē)載Ad hoc網(wǎng)絡(luò)對(duì)數(shù)據(jù)包采用貪婪轉(zhuǎn)發(fā) 的路由實(shí)現(xiàn)方法,該方法包括下列操作步驟
步驟1、把城市的道路環(huán)境建模為具有權(quán)重值的無(wú)向圖在該無(wú)向圖中, 端點(diǎn)集是道路的岔路口的集合,邊集是兩個(gè)岔路口之間的街道的集合。車(chē)輛 在該無(wú)向圖中的移動(dòng)是沿著邊從一個(gè)端點(diǎn)移動(dòng)到另一個(gè)端點(diǎn),街道的權(quán)重值取 決于街道交通流量信息和街道的物理長(zhǎng)度。
在該無(wú)向圖中,分別采用/e"gAO,")和rra^ c(w,")表示兩個(gè)盆路口 m和n之
間的街道物理長(zhǎng)度及其交通流量信息,前者的量綱是米和千米,后者的量綱是
單位時(shí)間內(nèi)經(jīng)過(guò)該街道的車(chē)輛數(shù)量;再設(shè)置盆路口 m和n之間的街道權(quán)值為
,ig/z"附,")=/e"g決"O,") / fr^#c" (w,"),式中,兩個(gè)調(diào)整系數(shù)a和"都大于或等于
零,該兩個(gè)數(shù)值分別決定街道的物理長(zhǎng)度和交通流量信息在進(jìn)行轉(zhuǎn)發(fā)節(jié)點(diǎn)選擇
時(shí)所考慮的因素的份量大小,"=0時(shí)表示街道的權(quán)值只取決于交通流量信息,
/ = 0時(shí)表示街道的權(quán)值僅取決于街道的物理長(zhǎng)度。
步驟2、對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新根據(jù)目的節(jié) 點(diǎn)的位置信息和城市道路環(huán)境的實(shí)時(shí)建模信息,對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口 進(jìn)行動(dòng)態(tài)選擇和更新,持有數(shù)據(jù)包的節(jié)點(diǎn)在岔路口區(qū)域更新數(shù)據(jù)包中的岔路 口序列。
在由源節(jié)點(diǎn)到目的節(jié)點(diǎn)的轉(zhuǎn)發(fā)過(guò)程中,數(shù)據(jù)包要經(jīng)歷許多個(gè)岔路口; 這些盆路口組成一個(gè)盆路口序列。而且,為了適應(yīng)城市道路交通的實(shí)時(shí)建模 信息,本發(fā)明對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的每個(gè)盆路口都是逐個(gè)計(jì)算和動(dòng)態(tài)選擇 的。被轉(zhuǎn)發(fā)的每個(gè)數(shù)據(jù)包的包頭中含有兩個(gè)岔路口標(biāo)識(shí) 一個(gè)是數(shù)據(jù)包正 在走向的岔路口的標(biāo)識(shí),稱為當(dāng)前岔路口 CJ;另一個(gè)是數(shù)據(jù)包剛剛離開(kāi)的 盆3各口的標(biāo)識(shí),稱為前一岔if各口 PJ。
本發(fā)明的數(shù)據(jù)包在轉(zhuǎn)發(fā)路徑中對(duì)岔路口進(jìn)行動(dòng)態(tài)選擇和更新的方法是當(dāng) 產(chǎn)生數(shù)據(jù)包的源節(jié)點(diǎn)或持有數(shù)據(jù)包的中間節(jié)點(diǎn)走進(jìn)某個(gè)岔路口區(qū)域(即車(chē)載 Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)到達(dá)某個(gè)盆路口的距離長(zhǎng)度小于設(shè)定數(shù)值的地域范圍) 時(shí),要根據(jù)目的節(jié)點(diǎn)的位置信息,按照?qǐng)D論中的Dijkstra最小花費(fèi)算法動(dòng)態(tài) 選擇下一個(gè)盆路口作為其前進(jìn)方向;優(yōu)先選擇的原則是距離短和車(chē)輛流量
密度大的街道。完成選擇后,持有數(shù)據(jù)包的節(jié)點(diǎn)在岔路口區(qū)域要更新數(shù)據(jù) 包中的岔路口序列把剛剛選擇的岔路口更新為當(dāng)前岔路口 CJ,而把該數(shù) 據(jù)包剛經(jīng)過(guò)的岔路口更新為前一岔路口 PJ。
步驟3、每個(gè)節(jié)點(diǎn)維持一個(gè)鄰居列表,并預(yù)測(cè)車(chē)輛節(jié)點(diǎn)位置和維護(hù)鄰居列 表利用街道上移動(dòng)的車(chē)輛所在地理位置具有可預(yù)測(cè)性的特點(diǎn)和預(yù)測(cè)車(chē)輛 節(jié)點(diǎn)位置的方法,每個(gè)節(jié)點(diǎn)預(yù)測(cè)其鄰居節(jié)點(diǎn)(鄰居節(jié)點(diǎn)是指當(dāng)兩個(gè)節(jié)點(diǎn)之間相 互都在對(duì)方的通信范圍之內(nèi),且沒(méi)有被建筑物阻擋時(shí),該兩個(gè)節(jié)點(diǎn)被稱為有鄰 居關(guān)系,或者說(shuō)其中一個(gè)節(jié)點(diǎn)是另一個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn))的當(dāng)前位置,并及時(shí) 更新其鄰居列表,以便減少信息維護(hù)工作量,并提高鄰居列表信息的有效性。
在車(chē)載AdHoc網(wǎng)絡(luò)中,因?yàn)檐?chē)輛是在城市設(shè)定的街道上移動(dòng),因此
可以預(yù)測(cè)其地理位置。本發(fā)明使用的預(yù)測(cè)車(chē)輛節(jié)點(diǎn)的位置的計(jì)算方法如下 假設(shè)當(dāng)前時(shí)間為"節(jié)點(diǎn)/的位置是(x,,力,其速度是v,.,走向岔路口 B
的位置坐標(biāo)是(&,"),前一個(gè)岔路口 A的位置坐標(biāo)是Oc,,h); ^(AB)是兩
個(gè)盆路口 j到5的3巨離;
貝'j在"Ar,其中A"cfo(/,5)/v,時(shí)刻,該節(jié)點(diǎn)仍然在該雄f道上移動(dòng)的位置坐
才示是(jc,十Afxv, x(>s — j^)/(i&(J5,^), 少,+ Af xv,. x(少s—3^)/d&(5,v4)); 而在Z + A/, 其
中Af > cfo(/,S)/v,時(shí)刻,該節(jié)點(diǎn)/可能已經(jīng)走出當(dāng)前潛f道而進(jìn)入另 一條潛f道上了 。
本發(fā)明中,每個(gè)節(jié)點(diǎn)都維持的鄰居列表的信息是通過(guò)相鄰的節(jié)點(diǎn)間廣播問(wèn) 候消息HELLO完成交互的。該HELLO消息包括節(jié)點(diǎn)標(biāo)識(shí)ID 、節(jié)點(diǎn)當(dāng)前所 在的地理位置、時(shí)間戳、節(jié)點(diǎn)的當(dāng)前速度及其移動(dòng)方向。節(jié)點(diǎn)收到鄰居節(jié) 點(diǎn)發(fā)送來(lái)的HELLO消息后,對(duì)鄰居列表中的上述信息進(jìn)行更新。
因?yàn)檐?chē)輛通常處于高速移動(dòng)中,導(dǎo)致網(wǎng)絡(luò)拓樸結(jié)構(gòu)變化迅速。在節(jié)點(diǎn) 高速運(yùn)動(dòng)的情況下,鄰居列表有時(shí)并不能真實(shí)、有效地反映網(wǎng)絡(luò)的實(shí)際情 況;但是,提高HELLO消息的發(fā)送頻率又會(huì)增加網(wǎng)絡(luò)負(fù)載。本發(fā)明是利 用上述位置預(yù)測(cè)計(jì)算方法來(lái)提高鄰居列表信息的有效性和降低HELLO消 息發(fā)送的頻率。節(jié)點(diǎn)z'是利用位置預(yù)測(cè)方法對(duì)鄰居列表中的鄰居節(jié)點(diǎn)的當(dāng)前位 置進(jìn)行預(yù)測(cè),并從鄰居列表中刪除已經(jīng)走出當(dāng)前街道的節(jié)點(diǎn);同時(shí),任何一個(gè) 節(jié)點(diǎn)離開(kāi)岔路口區(qū)域時(shí),都要立即廣播發(fā)送一個(gè)聲明該節(jié)點(diǎn)的最新位置信息的 HELLO消息,以便讓其他節(jié)點(diǎn)更新其鄰居列表中該離開(kāi)岔路口的節(jié)點(diǎn)的信息。
步驟4、目的節(jié)點(diǎn)更新其位置消息當(dāng)目的節(jié)點(diǎn)移動(dòng)到新的街道上后,向 中間節(jié)點(diǎn)廣播其位置更新消息;該位置更新消息包括消息ID、目的節(jié)點(diǎn)的IP地 址、當(dāng)前速度、位置信息及其運(yùn)動(dòng)方向,即目的節(jié)點(diǎn)剛剛離開(kāi)的岔路口 ID和走 向的盆路口 ID。中間節(jié)點(diǎn)緩存該位置更新消息或用該位置更新消息更新原有記 錄后,轉(zhuǎn)發(fā)該位置更新消息;當(dāng)需要時(shí),中間節(jié)點(diǎn)利用目的節(jié)點(diǎn)的最新位置信 息和實(shí)時(shí)建模信息進(jìn)行岔路口的動(dòng)態(tài)選擇和數(shù)據(jù)包的轉(zhuǎn)發(fā)。
步驟5、基于貪婪轉(zhuǎn)發(fā)策略對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)中間節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包
而選擇下一跳節(jié)點(diǎn)之前,先利用位置預(yù)測(cè)算法查看目的節(jié)點(diǎn)是否為其鄰居節(jié)點(diǎn),
如果是,則直接把數(shù)據(jù)包發(fā)給目的節(jié)點(diǎn);否則,根據(jù)中間節(jié)點(diǎn)位于岔路口區(qū)域 或兩個(gè)岔路口之間的道路上的不同,分別執(zhí)行相應(yīng)的貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù) 包。
下面分別介紹上述兩種貪婪轉(zhuǎn)發(fā)策略的具體操作過(guò)程
(一) 當(dāng)中間節(jié)點(diǎn)位于岔路口區(qū)域時(shí),貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包的方法 是根據(jù)中間節(jié)點(diǎn)的鄰居列表進(jìn)行位置預(yù)測(cè),從走向當(dāng)前岔路口的鄰居節(jié)點(diǎn)中 選擇其中距離當(dāng)前盆路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn);如果沒(méi)有找到相應(yīng)的節(jié)
點(diǎn),則把數(shù)據(jù)包暫存到緩存中,再使用探尋算法周期性地尋找是否有新的節(jié)點(diǎn) 走進(jìn)其通信范圍;如果該中間節(jié)點(diǎn)離開(kāi)岔路口區(qū)域但仍然沒(méi)有找到一個(gè)合適的 鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),則用該中間節(jié)點(diǎn)離開(kāi)的岔路口和走向的岔路口分別替換 數(shù)據(jù)包中的當(dāng)前岔路口和前一岔路口 。該方法的具體操作步驟如下
(5A)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置,并 從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn);
(5B )從鄰居列表中走向當(dāng)前岔路口的各個(gè)鄰居節(jié)點(diǎn)中,查找距離當(dāng)前岔 路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5D),否貝'J, 順序執(zhí)行步驟(5C);
(5C)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié)點(diǎn) 走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5A),否則,結(jié)束本跳操作;
(5D)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。
(二) 當(dāng)中間節(jié)點(diǎn)位于兩個(gè)盆路口之間的道路上時(shí),貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā) 數(shù)據(jù)包的方法是根據(jù)中間節(jié)點(diǎn)的鄰居列表選擇距離當(dāng)前岔路口最近的節(jié)點(diǎn) 作為下一跳節(jié)點(diǎn);如果沒(méi)有找到相應(yīng)的節(jié)點(diǎn),就把數(shù)據(jù)包暫存到緩存中,使 用探尋算法周期性地探尋是否有新的節(jié)點(diǎn)走進(jìn)它的通信范圍。該方法的具體 操作步驟如下
(5a)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置, 并從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn); (5b )從鄰居列表中查找距離當(dāng)前盆路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn), 若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5d),否則,順序執(zhí)行步驟(5c);
(5c)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié) 點(diǎn)走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5a),否則,結(jié)束本跳操作;
(5d)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。 在步驟5中,探尋算法的具體操作內(nèi)容如下
A、 持有數(shù)據(jù)包的節(jié)點(diǎn)先廣播一個(gè)探尋請(qǐng)求消息,該探尋請(qǐng)求消息中包含 該節(jié)點(diǎn)的當(dāng)前位置信息和當(dāng)前岔路口 ,并設(shè)置一個(gè)定時(shí)器;
B、 在定時(shí)器超時(shí)之前,如果有節(jié)點(diǎn)接收到該探尋請(qǐng)求,并且其位置位于 持有數(shù)據(jù)包的節(jié)點(diǎn)和當(dāng)前岔路口之間,則該節(jié)點(diǎn)立即返回探尋響應(yīng)消息,該響 應(yīng)消息中包含收到探尋請(qǐng)求節(jié)點(diǎn)的ID、該收到探尋請(qǐng)求節(jié)點(diǎn)的地理位置信息、 當(dāng)前速度及其移動(dòng)方向;持有數(shù)據(jù)包的節(jié)點(diǎn)接收到探尋響應(yīng)消息后,提取探 尋響應(yīng)消息中的相關(guān)數(shù)據(jù)并更新鄰居列表;并在定時(shí)器到達(dá)設(shè)定時(shí)間后,結(jié)束 本次探尋操作,探尋成功;
C、 在定時(shí)器超時(shí)之前,如果沒(méi)有任何響應(yīng)消息,這時(shí)持有數(shù)據(jù)包的節(jié)點(diǎn) 可能走到一個(gè)網(wǎng)絡(luò)的邊緣,即出現(xiàn)網(wǎng)絡(luò)分割現(xiàn)象;此時(shí),該定時(shí)器將延遲一 段時(shí)間后重新返回執(zhí)行步驟A的操作;若重復(fù)執(zhí)行步驟A的操作達(dá)到設(shè)定的次 數(shù)后,仍未探尋成功,則持有數(shù)據(jù)包的節(jié)點(diǎn)丟棄數(shù)據(jù)包,探尋失敗。
申請(qǐng)人對(duì)本發(fā)明方法進(jìn)行了仿真實(shí)施試驗(yàn),通過(guò)理論分析和仿真實(shí)施例的 實(shí)驗(yàn)論證,證明本發(fā)明的方法是有效的,能夠?qū)崿F(xiàn)發(fā)明目的。
權(quán)利要求
1.一種適應(yīng)于城市環(huán)境的車(chē)載Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法,其特征在于,包括下列操作步驟(1)把城市的道路環(huán)境建模為具有權(quán)重值的無(wú)向圖在該無(wú)向圖中,端點(diǎn)集是道路的岔路口的集合,邊集是兩個(gè)岔路口之間的街道的集合;車(chē)輛在該無(wú)向圖中的移動(dòng)是沿著邊從一個(gè)端點(diǎn)移動(dòng)到另一個(gè)端點(diǎn),街道的權(quán)重值取決于街道交通流量信息和街道的物理長(zhǎng)度;(2)對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新根據(jù)目的節(jié)點(diǎn)的位置信息和城市道路環(huán)境的實(shí)時(shí)建模信息,對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新,持有數(shù)據(jù)包的節(jié)點(diǎn)在岔路口區(qū)域更新數(shù)據(jù)包中的岔路口序列;(3)每個(gè)節(jié)點(diǎn)維持一個(gè)鄰居列表,并預(yù)測(cè)車(chē)輛節(jié)點(diǎn)位置和維護(hù)鄰居列表利用街道上移動(dòng)的車(chē)輛所在地理位置具有可預(yù)測(cè)性的特點(diǎn)和預(yù)測(cè)車(chē)輛節(jié)點(diǎn)位置的方法,每個(gè)節(jié)點(diǎn)預(yù)測(cè)其鄰居節(jié)點(diǎn)的當(dāng)前位置,并及時(shí)更新其鄰居列表,以便減少信息維護(hù)工作量,并提高鄰居列表信息的有效性;(4)目的節(jié)點(diǎn)更新其位置消息當(dāng)目的節(jié)點(diǎn)移動(dòng)到新的街道上后,向中間節(jié)點(diǎn)廣播其位置更新消息;中間節(jié)點(diǎn)緩存該位置更新消息或用該位置更新消息更新原有記錄后,轉(zhuǎn)發(fā)該位置更新消息;當(dāng)需要時(shí),中間節(jié)點(diǎn)利用目的節(jié)點(diǎn)的最新位置信息和實(shí)時(shí)建模信息進(jìn)行岔路口的動(dòng)態(tài)選擇和數(shù)據(jù)包的轉(zhuǎn)發(fā);(5)基于貪婪轉(zhuǎn)發(fā)策略對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)中間節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包而進(jìn)行下一跳選擇之前,先利用位置預(yù)測(cè)算法查看目的節(jié)點(diǎn)是否為其鄰居節(jié)點(diǎn),如果是,則直接把數(shù)據(jù)包發(fā)給目的節(jié)點(diǎn);否則,根據(jù)中間節(jié)點(diǎn)位于岔路口區(qū)域還是兩個(gè)岔路口之間的道路上,分別執(zhí)行相應(yīng)的貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(1)的無(wú)向圖中, 分別采用/ewg晰w,")和w)表示盆^各口 m和n之間的雍f道物理長(zhǎng)度及其交 通流量信息,后者的量綱是單位時(shí)間內(nèi)經(jīng)過(guò)該街道的車(chē)輛數(shù)量;設(shè)置岔路口 m和n之間的雀f道斥又值為weZg似(附,w) = /e"g^" O, ") / ^ ^ 一 (w,"),式中,兩個(gè)調(diào)整系 數(shù)《和/ 都大于或等于零,該兩個(gè)數(shù)值分別決定街道的物理長(zhǎng)度和交通流量信 息在選擇中間轉(zhuǎn)發(fā)節(jié)點(diǎn)時(shí)所考慮的因素的份量大小,"=0時(shí)表示街道的權(quán)值只 取決于交通流量信息,- = 0時(shí)表示街道的權(quán)值僅取決于街道的物理長(zhǎng)度。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(2)中,由源節(jié) 點(diǎn)到目的節(jié)點(diǎn)的轉(zhuǎn)發(fā)數(shù)據(jù)包過(guò)程中,所經(jīng)歷的多個(gè)岔路口組成一個(gè)岔路口 序列;且為適應(yīng)城市道路環(huán)境的實(shí)時(shí)建模信息,對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)包路徑中的每個(gè) 盆路口都要逐個(gè)計(jì)算和動(dòng)態(tài)選擇;每個(gè)數(shù)據(jù)包的包頭中含有兩個(gè)岔路口標(biāo) 識(shí)當(dāng)前盆路口 CJ和前一岔路口 PJ,前者是數(shù)據(jù)包正在走向的岔路口標(biāo)識(shí), 后者為該數(shù)據(jù)包剛剛離開(kāi)的岔路口標(biāo)識(shí)。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于所述對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新的方法是當(dāng)產(chǎn)生數(shù)據(jù)包的源節(jié)點(diǎn)或持有數(shù)據(jù)包 的中間節(jié)點(diǎn)走進(jìn)某個(gè)盆路口區(qū)域時(shí),要根據(jù)目的節(jié)點(diǎn)的位置信息,按照?qǐng)D論中的最小花費(fèi)算法動(dòng)態(tài)選擇下一個(gè)岔路口作為其前進(jìn)方向;優(yōu)先選擇的 原則是距離短和車(chē)輛流量密度大的街道;完成選擇后,持有數(shù)據(jù)包的節(jié)點(diǎn) 要更新其盆路口序列把剛剛選擇的岔路口更新為當(dāng)前岔路口 CJ,而把該 數(shù)據(jù)包剛經(jīng)過(guò)的岔路口更新為前一岔路口 PJ。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于所述岔路口區(qū)域是指車(chē)載 Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)到達(dá)某個(gè)岔路口的距離長(zhǎng)度小于設(shè)定數(shù)值的地域范圍。
6、 才艮據(jù)權(quán)利要求1所述的方法,其特征在于所述鄰居節(jié)點(diǎn)是指兩個(gè)節(jié)點(diǎn) 之間相互在對(duì)方的通信范圍之內(nèi),且沒(méi)有被建筑物阻擋時(shí),則稱該兩個(gè)節(jié)點(diǎn)具 有鄰居關(guān)系,或者說(shuō)其中一個(gè)節(jié)點(diǎn)是另外一個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。
7、 根據(jù)權(quán)利要求1所述的方法,其特征在于所述鄰居列表的信息是通過(guò) 相鄰的節(jié)點(diǎn)間廣播問(wèn)候消息HELLO完成交互的,該HELLO消息包括節(jié)點(diǎn)標(biāo) 識(shí)ID、節(jié)點(diǎn)當(dāng)前所在的地理位置、時(shí)間戳、節(jié)點(diǎn)的當(dāng)前速度及其移動(dòng)方向; 收到鄰居節(jié)點(diǎn)發(fā)送來(lái)的HELLO消息后,節(jié)點(diǎn)對(duì)鄰居列表中的相關(guān)信息進(jìn) 行更新;為減少HELLO消息發(fā)送頻率和提高鄰居列表信息的有效性,節(jié) 點(diǎn)利用位置預(yù)測(cè)方法對(duì)鄰居列表中的各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前位置進(jìn)行預(yù)測(cè),并從 鄰居列表中刪除已經(jīng)走出當(dāng)前街道的節(jié)點(diǎn);同時(shí)任何一個(gè)節(jié)點(diǎn)離開(kāi)岔路口區(qū)域 時(shí),都要立即廣播發(fā)送一個(gè)聲明該節(jié)點(diǎn)最新位置信息的HELLO消息,以便讓 其他節(jié)點(diǎn)更新其鄰居列表中該離開(kāi)岔路口的節(jié)點(diǎn)的信息;所述車(chē)輛節(jié)點(diǎn)的位置預(yù)測(cè)方法是假設(shè)當(dāng)前時(shí)間為z,節(jié)點(diǎn)/的位置是 (jc,,y,),其速度是v,,走向岔路口 B的位置坐標(biāo)是(^,&),前一個(gè)岔路口 A 位置坐標(biāo)是(^,力);cfo(AB)是兩個(gè)岔路口 ^到S的距離;則在,+ ",其中 〈^fo(i,B)/v,日十刻,該節(jié)點(diǎn)仍然在該凝f道上移動(dòng)的位置坐標(biāo)是(x,+A"v,x(xs-jc》/必(5,, y,+A"v,x(;;「:^)/ifoC8,爿)),而在,+ A,, 其中 Ab必(/,^/v,時(shí)刻,該節(jié)點(diǎn)/可能已經(jīng)走出當(dāng)前街道而進(jìn)入另一條街道上。
8、根據(jù)權(quán)利要求1所述的方法,其特征在于當(dāng)中間節(jié)點(diǎn)位于岔路口區(qū)域 時(shí),所述貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包的方法是根據(jù)中間節(jié)點(diǎn)的鄰居列表進(jìn)行 位置預(yù)測(cè),從走向當(dāng)前岔路口的鄰居節(jié)點(diǎn)中選擇其中距離當(dāng)前岔路口最近的節(jié) 點(diǎn)作為下一跳節(jié)點(diǎn);如果沒(méi)有找到相應(yīng)的節(jié)點(diǎn),則把數(shù)據(jù)包暫存到緩存中,再 使用探尋算法周期性地尋找是否有新的節(jié)點(diǎn)走進(jìn)其通信范圍;如果該中間節(jié)點(diǎn) 離開(kāi)岔路口區(qū)域但仍然沒(méi)有找到一個(gè)合適的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),則用該中間 節(jié)點(diǎn)離開(kāi)的盆路口和走向的岔路口分別替換數(shù)據(jù)包中的當(dāng)前岔路口和前一岔路 口;該方法的具體梯:作步驟如下(5A)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置,并 從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn);(5B)從鄰居列表中走向當(dāng)前岔路口的各鄰居節(jié)點(diǎn)中,查找距離當(dāng)前岔路 口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5D),否則, 順序執(zhí)行步驟(5C );(5C)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié)點(diǎn) 走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5A),否則,結(jié)束本跳操作;(5D)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。
9、 根據(jù)權(quán)利要求1所述的方法,其特征在于當(dāng)中間節(jié)點(diǎn)位于兩個(gè)岔路 口之間的道路上時(shí),所述貪婪轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)數(shù)據(jù)包的方法是根據(jù)中間節(jié)點(diǎn) 的鄰居列表選擇距離當(dāng)前岔路口最近的節(jié)點(diǎn)作為下 一跳節(jié)點(diǎn);如果沒(méi)有找 到相應(yīng)的節(jié)點(diǎn),就把數(shù)據(jù)包暫存到緩存中,使用探尋算法周期性地探尋是否 有新的節(jié)點(diǎn)走進(jìn)它的通信范圍;該方法的具體操作步驟如下(5a)更新鄰居列表計(jì)算鄰居列表中各個(gè)鄰居節(jié)點(diǎn)的當(dāng)前地理位置, 并從鄰居列表中刪除與本節(jié)點(diǎn)不再具有鄰居關(guān)系的節(jié)點(diǎn);(5b )從鄰居列表中查找距離當(dāng)前盆路口最近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn), 若能夠找到,則跳轉(zhuǎn)執(zhí)行步驟(5d),否則,順序執(zhí)行步驟(5c);(5c)把數(shù)據(jù)包暫存于緩存,再循環(huán)執(zhí)行探尋算法,尋找是否有新的節(jié) 點(diǎn)走進(jìn)其通信范圍;若探尋成功,則返回執(zhí)行步驟(5a),否則,結(jié)束本跳操作;(5d)把數(shù)據(jù)包轉(zhuǎn)發(fā)給該找到的下一跳節(jié)點(diǎn),結(jié)束本跳操作。
10、 根據(jù)權(quán)利要求8或9所述的方法,其特征在于所述探尋算法的具體 操作內(nèi)容是A、 持有數(shù)據(jù)包的節(jié)點(diǎn)廣播一個(gè)探尋請(qǐng)求消息,該探尋請(qǐng)求消息中包含該 節(jié)點(diǎn)的當(dāng)前位置信息和當(dāng)前盆路口,并設(shè)置一個(gè)定時(shí)器;B、 在定時(shí)器超時(shí)之前,如果有節(jié)點(diǎn)接收到該探尋請(qǐng)求,并且其位置位于 持有數(shù)據(jù)包的節(jié)點(diǎn)和當(dāng)前岔路口之間,則該節(jié)點(diǎn)立即返回探尋響應(yīng)消息,該響 應(yīng)消息中包含收到探尋請(qǐng)求節(jié)點(diǎn)的ID、該收到探尋請(qǐng)求節(jié)點(diǎn)的地理位置信息、 當(dāng)前速度及其移動(dòng)方向;持有數(shù)據(jù)包的節(jié)點(diǎn)接收到探尋響應(yīng)消息后,提取探 尋響應(yīng)消息中的相關(guān)數(shù)據(jù)并更新鄰居列表;并在定時(shí)器到達(dá)設(shè)定時(shí)間后,結(jié)束 本次探尋操作,探尋成功;C、 在定時(shí)器超時(shí)之前,如果沒(méi)有任何響應(yīng)消息,這時(shí)持有數(shù)據(jù)包的節(jié)點(diǎn) 可能走到一個(gè)網(wǎng)絡(luò)的邊緣,即出現(xiàn)網(wǎng)絡(luò)分割現(xiàn)象;此時(shí),該持有數(shù)據(jù)包的節(jié) 點(diǎn)將延遲一段時(shí)間后重新返回執(zhí)行步驟A的操作;若重復(fù)執(zhí)行步驟A的操作達(dá) 到設(shè)定的次數(shù),仍未探尋成功,則該持有數(shù)據(jù)包的節(jié)點(diǎn)丟棄數(shù)據(jù)包,探尋失敗。
全文摘要
一種適應(yīng)于城市環(huán)境的車(chē)載Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)包貪婪轉(zhuǎn)發(fā)的方法,包括下列操作步驟(1)把城市的道路環(huán)境建模為具有權(quán)重值的無(wú)向圖,(2)對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑中的岔路口進(jìn)行動(dòng)態(tài)選擇和更新,(3)每個(gè)節(jié)點(diǎn)維持一個(gè)鄰居列表,并預(yù)測(cè)車(chē)輛節(jié)點(diǎn)位置和維護(hù)鄰居列表,(4)目的節(jié)點(diǎn)更新其位置消息,(5)基于貪婪轉(zhuǎn)發(fā)策略對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。該方法充分利用車(chē)載Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)的特性,在數(shù)據(jù)包的遞交率、時(shí)延、平均跳數(shù)、物理層發(fā)送的總數(shù)據(jù)量等指標(biāo)上都優(yōu)于目前使用的其他算法,且操作步驟簡(jiǎn)單、易行,計(jì)算工作復(fù)雜度低,能夠滿足實(shí)時(shí)傳輸?shù)囊蟆?br>
文檔編號(hào)H04L12/28GK101369982SQ20081022440
公開(kāi)日2009年2月18日 申請(qǐng)日期2008年10月13日 優(yōu)先權(quán)日2008年10月13日
發(fā)明者廖建新, 磊 張, 張樂(lè)劍, 童 徐, 朱曉民, 煒 李, 李元振, 李彤紅, 樊利民, 沈奇威, 晶 王, 純 王, 莉 程 申請(qǐng)人:北京郵電大學(xué)