《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > MANET中基于網(wǎng)格可預(yù)測的位置服務(wù)
MANET中基于網(wǎng)格可預(yù)測的位置服務(wù)
來源:微型機與應(yīng)用2010年第17期
廖過房,周繼鵬
(暨南大學(xué) 信息科學(xué)技術(shù)學(xué)院 計算機系,廣東 廣州 510632)
摘要: 提出了基于網(wǎng)格可預(yù)測的位置服務(wù)算法(GPLS)。網(wǎng)絡(luò)劃分成網(wǎng)格,通過HASH函數(shù)對網(wǎng)格進(jìn)行分組,通信的源節(jié)點通過與目的節(jié)點所在分組內(nèi)的位置服務(wù)節(jié)點通信,獲得目的節(jié)點的準(zhǔn)確或預(yù)測的位置信息。在不增加網(wǎng)絡(luò)帶寬的前提下,提高了位置服務(wù)效率,節(jié)約了網(wǎng)絡(luò)的能源和帶寬。
Abstract:
Key words :

摘  要: 提出了基于網(wǎng)格可預(yù)測位置服務(wù)算法(GPLS)。網(wǎng)絡(luò)劃分成網(wǎng)格,通過HASH函數(shù)對網(wǎng)格進(jìn)行分組,通信的源節(jié)點通過與目的節(jié)點所在分組內(nèi)的位置服務(wù)節(jié)點通信,獲得目的節(jié)點的準(zhǔn)確或預(yù)測的位置信息。在不增加網(wǎng)絡(luò)帶寬的前提下,提高了位置服務(wù)效率,節(jié)約了網(wǎng)絡(luò)的能源和帶寬。
關(guān)鍵詞: 位置服務(wù);可預(yù)測;網(wǎng)格;MANET

    移動Ad Hoc網(wǎng)絡(luò)MANET(Mobile Ad hoc Networks) 是一種無基礎(chǔ)設(shè)施、自組織和自配置的多跳無線網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)節(jié)點的移動動態(tài)地改變。網(wǎng)絡(luò)節(jié)點通過協(xié)作來傳輸信息,通常節(jié)點既作為主機又作為路由器。節(jié)點的移動性使得網(wǎng)絡(luò)中拓?fù)渥兓l繁且事先無法預(yù)測,所以在MANET中發(fā)現(xiàn)和維護(hù)路由是一個至關(guān)重要的問題,一直是研究的熱點和難點問題。
    近年來,利用地理位置信息的路由協(xié)議在MANET中得到了很大發(fā)展。隨著全球定位技術(shù)(GPS)的普遍應(yīng)用,節(jié)點可以獲得自身準(zhǔn)確的位置信息。利用這些信息進(jìn)行路由可以降低路由協(xié)議的控制開銷、適應(yīng)動態(tài)變化的網(wǎng)絡(luò)拓?fù)湟约疤岣呗酚蓞f(xié)議的可擴展性。然而在基于位置信息的路由協(xié)議中,在發(fā)送路由包之前,源節(jié)點需要知道目的節(jié)點的具體位置,主要的問題是基于位置服務(wù)的路由協(xié)議中需要位置服務(wù)來確定目的節(jié)點的位置,并返回目的節(jié)點的位置信息。
    本文從穩(wěn)定高效的角度對基于位置服務(wù)算法進(jìn)行研究,提出了基于網(wǎng)格可預(yù)測的位置服務(wù)GPLS(Grid-based Predictive Location Service)算法。該算法把整個網(wǎng)絡(luò)劃分成平面網(wǎng)格以避免洪泛操作。通過HASH方法對網(wǎng)格進(jìn)行分組,節(jié)點可以與組內(nèi)任意網(wǎng)格通信,減少了位置更新和查找的步驟和復(fù)雜性,節(jié)約了MANET中的能源和帶寬。根據(jù)同組網(wǎng)格內(nèi)任意位置服務(wù)節(jié)點提供的目的節(jié)點的位置,預(yù)測出目的節(jié)點的位置,提高M(jìn)ANET中位置服務(wù)的效率,避免洪泛操作。
1 相關(guān)算法
    GLS(Grid Location Service)[1]將整個網(wǎng)絡(luò)劃分為網(wǎng)格,節(jié)點把它的位置信息分布地存放在網(wǎng)絡(luò)中的一個或多個位置服務(wù)器中。通過位置服務(wù)節(jié)點可隨時查詢網(wǎng)絡(luò)中其他節(jié)點的位置,各節(jié)點間采用地理路由轉(zhuǎn)發(fā)進(jìn)行分組傳輸。HNS(Helping Node Selection)[2]根據(jù)位置服務(wù)器中記錄節(jié)點移動的速度和記錄的時間來預(yù)判節(jié)點的位置,通過其他移動節(jié)點把數(shù)據(jù)包直接攜帶到預(yù)判的位置,再把數(shù)據(jù)包傳輸給目的節(jié)點。這樣既提高了數(shù)據(jù)包的投遞率,又有效地解決了移動自組網(wǎng)絡(luò)中節(jié)點動態(tài)移動和空洞問題。PLS(Predictive Location Service)[3]是一個可預(yù)測、自適應(yīng)的平面位置服務(wù)。節(jié)點定期向周圍節(jié)點發(fā)送緩存中的位置信息。節(jié)點在整個網(wǎng)絡(luò)中洪泛查找目的節(jié)點,接收到信息的節(jié)點根據(jù)緩存中目的節(jié)點的位置信息預(yù)測出當(dāng)前目的節(jié)點的位置。HBLS(Hashing-Based Location Service)[4]是一個基于HASH集合和平面結(jié)構(gòu)的位置服務(wù)算法。在當(dāng)前服務(wù)器消失之前選擇一個新的服務(wù)器,以提高服務(wù)的可靠性和服務(wù)的時間。整個網(wǎng)絡(luò)區(qū)域劃分為多個不重疊的區(qū)域。在伸縮性和可靠性兩個方面權(quán)衡HBLS都是一個很好的算法。
2 算法描述
2.1 系統(tǒng)模型和假設(shè)

    系統(tǒng)考慮n個節(jié)點在整個網(wǎng)絡(luò)中自由移動,節(jié)點通過無線技術(shù)彼此進(jìn)行通信,但是沒有提供固定的網(wǎng)絡(luò)基礎(chǔ)設(shè)施。假設(shè)所有節(jié)點功能相當(dāng),都有一個統(tǒng)一的傳輸范圍。每個節(jié)點配備GPS接收裝置,能確定節(jié)點自己的位置,所有在傳輸范圍內(nèi)的節(jié)點都被認(rèn)為是鄰節(jié)點。節(jié)點既是源,又轉(zhuǎn)發(fā)數(shù)據(jù),因此形成了MANET。每個節(jié)點有一個唯一的身份標(biāo)識節(jié)點ID。網(wǎng)絡(luò)結(jié)構(gòu)的改變是不可預(yù)測的。
2.2 網(wǎng)絡(luò)劃分和網(wǎng)格分組
    在地理路由中,通常把網(wǎng)絡(luò)劃分成多個小網(wǎng)格,每個網(wǎng)格分配一個編號,在每個網(wǎng)格內(nèi)選擇一個合適的節(jié)點作為位置服務(wù)節(jié)點(黑點為位置服務(wù)節(jié)點),整個網(wǎng)絡(luò)劃分成25個網(wǎng)格,如圖1所示。

    通過網(wǎng)格ID,建立一個HASH函數(shù)f(Gi)=Gi%G0,其中,G0為常數(shù),Gi為網(wǎng)格的ID。把f(Gi)相同的分到一組,把一個網(wǎng)格G1內(nèi)的節(jié)點位置信息映射到其他網(wǎng)格G2、G3……Gn,映射到的網(wǎng)格被分到一組(G1、G2、G3……Gn),位置服務(wù)節(jié)點定時向同組內(nèi)其他位置服務(wù)節(jié)點傳輸本網(wǎng)格內(nèi)節(jié)點的位置信息。同組的網(wǎng)格盡量均勻分布到整個網(wǎng)絡(luò)中。如圖1所示,G0=7,f(1)=1%7=1,f(8)=8%7=1,f(15)=15%7=1,f(22)=22%7=1。把網(wǎng)格1,8,15,22分到組1中。依次類推組2、組3、組4、組5、組6、組0。
    節(jié)點被分配到網(wǎng)格中,每個節(jié)點根據(jù)節(jié)點產(chǎn)生時所在的網(wǎng)格來分配節(jié)點ID。根據(jù)節(jié)點的ID,可以計算節(jié)點所在的網(wǎng)格及網(wǎng)格所在的分組,通過組內(nèi)網(wǎng)格的位置,服務(wù)節(jié)點獲得節(jié)點的位置信息。如果同一個網(wǎng)格內(nèi)的節(jié)點都可以相互直接通信,只需要一個網(wǎng)格內(nèi)最遠(yuǎn)的距離小于或等于節(jié)點的通信的傳輸半徑即可,即×a,如圖2所示。其中,R為節(jié)點傳輸半徑,a為網(wǎng)格的大小。

2.3 位置服務(wù)器選擇
    每個網(wǎng)格內(nèi)有位置服務(wù)節(jié)點,選擇離網(wǎng)格中心物理距離最近的節(jié)點作為位置服務(wù)節(jié)點。當(dāng)位置服務(wù)節(jié)點離開網(wǎng)格或停止服務(wù)以后,網(wǎng)格內(nèi)的節(jié)點需要重新選擇位置服務(wù)器。
    物理距離計算公式:
 
式中,(x1,y1)、(x2,y2)為網(wǎng)格中心和節(jié)點的坐標(biāo)。
    網(wǎng)格服務(wù)器節(jié)點保存同組網(wǎng)格區(qū)域產(chǎn)生的節(jié)點信息。源節(jié)點要查找目的節(jié)點信息,源節(jié)點可通過貪心算法向目的節(jié)點所在同一分組內(nèi)某個特定的網(wǎng)格發(fā)送查找信息。
2.4 位置的更新
    節(jié)點根據(jù)最初產(chǎn)生時所在的網(wǎng)格獲得節(jié)點ID。節(jié)點把自己的位置信息登記到所在網(wǎng)格的位置服務(wù)節(jié)點中(位置信息包括節(jié)點ID、位置、移動的速度、信息更新的時刻),節(jié)點定時Thello向鄰居節(jié)點發(fā)送hello數(shù)據(jù)包,報告自己的存在。節(jié)點定時Tstart從節(jié)點產(chǎn)生時所在分組的網(wǎng)格中選擇離現(xiàn)在物理距離最近的網(wǎng)格,并通過貪心算法向該網(wǎng)格報告自己的位置。位置服務(wù)節(jié)點定時Tserver通過貪心算法向同組其他網(wǎng)格位置服務(wù)節(jié)點單播本網(wǎng)格產(chǎn)生的節(jié)點的位置信息。
    節(jié)點位置信息更新規(guī)則:
    (1)節(jié)點定時Thello向周圍鄰居節(jié)點發(fā)送hello數(shù)據(jù)包,報告自己的存在。
    (2)當(dāng)節(jié)點離開當(dāng)前網(wǎng)格時,向當(dāng)前網(wǎng)格位置服務(wù)器發(fā)送離開請求,位置服務(wù)器對節(jié)點進(jìn)行相應(yīng)的登記。
    (3)節(jié)點離開節(jié)點本身產(chǎn)生時所在網(wǎng)格后,根據(jù)移動的距離S0通過貪心算法向產(chǎn)生時所在網(wǎng)格分組最近位置服務(wù)節(jié)點發(fā)送位置更新信息,更新時間的間隔為Tstart。如果移動的距離小于S0,時間間隔到了Tstart,也需要向初始網(wǎng)格服務(wù)器發(fā)送自己的位置信息。
    (4)當(dāng)節(jié)點加入一個新的網(wǎng)格,節(jié)點向周圍一跳的節(jié)點廣播hello數(shù)據(jù)包,獲得新的位置服務(wù)節(jié)點。
    (5)位置服務(wù)節(jié)點定時Tserver向同組內(nèi)其他網(wǎng)格的服務(wù)節(jié)點通過貪心算法轉(zhuǎn)發(fā)本網(wǎng)格產(chǎn)生節(jié)點的位置信息。
    (6)網(wǎng)格服務(wù)器記錄路過節(jié)點的位置信息,記錄的時間Tnode大于本網(wǎng)格或映射到本網(wǎng)格節(jié)點的位置信息的時間Tserver。
    位置更新的例子如圖3所示。節(jié)點9在網(wǎng)格1產(chǎn)生,所以節(jié)點9所在的網(wǎng)格分組(1,8,15,22),當(dāng)節(jié)點移動到網(wǎng)格4時,網(wǎng)格組內(nèi)網(wǎng)格的中心距離節(jié)點9物理距離最近的網(wǎng)格是網(wǎng)格8,所以節(jié)點9向網(wǎng)格8報告自己的位置;當(dāng)節(jié)點移動到網(wǎng)格10時,網(wǎng)格內(nèi)網(wǎng)格的中心距離節(jié)點9物理距離最近的網(wǎng)格是15,所以節(jié)點9向網(wǎng)格15報告自己的位置,由于移動的距離和時間間隔都還沒到,所以當(dāng)節(jié)點移動到網(wǎng)格5時,不會向網(wǎng)格組報告自己的位置,但是網(wǎng)格10的位置服務(wù)器會保存節(jié)點9離開時的位置信息。網(wǎng)格15定時向網(wǎng)格1、網(wǎng)格8、網(wǎng)格15、網(wǎng)格22報告節(jié)點9的位置信息。傳輸方式全部采用貪心算法。

2.5 位置的查找
    當(dāng)源節(jié)點S需要和目的節(jié)點D通信時,源節(jié)點S需要查找目的節(jié)點D的位置,源節(jié)點S通過目的節(jié)點D的ID計算出目的節(jié)點所在的網(wǎng)格組,根據(jù)目的節(jié)點D產(chǎn)生時所在的網(wǎng)格組內(nèi)網(wǎng)格(G1、G2、G3……Gn)距離源節(jié)點S物理距離,選擇距離源節(jié)點最近的網(wǎng)格Gi,源節(jié)點向最近的網(wǎng)格Gi的位置服務(wù)節(jié)點查找目的節(jié)點D的位置信息,并利用預(yù)測公式預(yù)測目的節(jié)點D的位置。預(yù)測公式:
 
    根據(jù)Sprediction預(yù)測目的節(jié)點D所在的網(wǎng)格G′,通過貪心算法向目的節(jié)點所在的網(wǎng)格G′發(fā)送查找信息。如果目的節(jié)點D在查找包到達(dá)的網(wǎng)格G′內(nèi),則位置已經(jīng)找到;如果不在,但網(wǎng)格G′有目的節(jié)點D離開時的記錄,則根據(jù)預(yù)測函數(shù)和離開時的位置信息記錄預(yù)測網(wǎng)格G″,通過貪心算法向預(yù)測的網(wǎng)格G″發(fā)送查找信息;如果網(wǎng)格G′沒有目的節(jié)點D的位置信息,則目的節(jié)點D未到達(dá)網(wǎng)格G′,則要進(jìn)行折半查找,即向查找獲得的目的節(jié)點D的位置與預(yù)測的目的節(jié)點D的位置的中點所在的網(wǎng)格G?蓯進(jìn)行查找。中點計算公式:

    如果網(wǎng)格G?蓯有目的節(jié)點D的位置信息,則可根據(jù)這一位置信息預(yù)測目的節(jié)點D的位置與網(wǎng)格,并通過貪心算法轉(zhuǎn)發(fā)到目的節(jié)點D預(yù)測的網(wǎng)格;如果沒有,則認(rèn)為目的節(jié)點D未到達(dá)網(wǎng)格G?蓯,再進(jìn)行折半查找;循環(huán)執(zhí)行,直到預(yù)測的網(wǎng)格中心與提供目的節(jié)點位置信息網(wǎng)格中心小于S0或目的節(jié)點D時停止。
    查找步驟如下:
    (1)當(dāng)源節(jié)點S需要與目的節(jié)點D通信時,本地的位置信息表中沒有目的節(jié)點D的位置信息。
    (2)源節(jié)點S首先向本地網(wǎng)格服務(wù)器查找是否有目的節(jié)點D的位置信息,如果有,則停止查找;如果沒有,則發(fā)起目的節(jié)點D的位置查找。
    (3)源節(jié)點S需要查找目的節(jié)點D,源節(jié)點S根據(jù)目的節(jié)點D的ID計算出目的節(jié)點D所屬的產(chǎn)生時所在的網(wǎng)格G1,利用HASH函數(shù)計算同組網(wǎng)格G2、G3……Gn,從G1~Gn中選擇一個離當(dāng)前源節(jié)點物理距離最近的網(wǎng)格Gi,并通過貪心算法向其發(fā)送節(jié)點查找信息。
    (4)根據(jù)網(wǎng)格Gi的服務(wù)器提供的目的節(jié)點D的信息,通過預(yù)測函數(shù)計算目的節(jié)點D所在的網(wǎng)格G′。
    (5)通過貪心算法向預(yù)測的目的節(jié)點所在的網(wǎng)格G′轉(zhuǎn)發(fā)查找信息,如果查找包轉(zhuǎn)發(fā)過程中發(fā)現(xiàn)有新的目的節(jié)點的位置信息,則進(jìn)行更新并及時調(diào)整轉(zhuǎn)發(fā)策略。
    (6)如果目的節(jié)點D在路由查找包到達(dá)的網(wǎng)格G′內(nèi),則位置已經(jīng)找到;如果不在,但有離開時的記錄,則根據(jù)離開時的記錄和預(yù)測函數(shù)預(yù)測目的節(jié)點在網(wǎng)格G″內(nèi),向預(yù)測的網(wǎng)格G″查找,執(zhí)行第5步;如果G′中沒有目的節(jié)點D的信息,則認(rèn)為目的節(jié)點D未到達(dá)網(wǎng)格G′,執(zhí)行第7步。
    (7)進(jìn)行折半查找,向中點網(wǎng)格查找是否有該目的節(jié)點D的位置信息,如果有,執(zhí)行第4步;如果沒有,則說明二種可能:(1)初始服務(wù)器的節(jié)點D信息失效,這時應(yīng)該刪除;(2)節(jié)點異常離開網(wǎng)絡(luò),停止查找。
    目的節(jié)點D接收到查找請求包時,則通過貪心算法返回包括目的節(jié)點D的位置的信息包到源節(jié)點S。源節(jié)點S緩存目的節(jié)點D的位置信息,這樣位置服務(wù)實現(xiàn)了目的節(jié)點D的查找。
    位置查找的例子如圖4所示。節(jié)點123要與節(jié)點9通信,首先節(jié)點123計算出節(jié)點9在網(wǎng)格1產(chǎn)生,計算出網(wǎng)格1,網(wǎng)格8、網(wǎng)格15、網(wǎng)格22在同一分組。網(wǎng)格組內(nèi)網(wǎng)格的中心距離節(jié)點123物理距離最近的是網(wǎng)格8,網(wǎng)格8提供節(jié)點9的位置信息是在網(wǎng)格10;向網(wǎng)格10查找節(jié)點9,到了網(wǎng)格10以后沒有找到節(jié)點9,但有節(jié)點9離開時的位置信息,根據(jù)位置信息預(yù)測出節(jié)點9在網(wǎng)格5;向網(wǎng)格5查找節(jié)點9,網(wǎng)格5也沒有節(jié)點9,但是有節(jié)點9的位置信息,再次根據(jù)預(yù)測函數(shù),預(yù)測出節(jié)點9在網(wǎng)格3;向網(wǎng)格3查找節(jié)點9,在網(wǎng)格3查找到節(jié)點9,節(jié)點9通過貪心算法向節(jié)點123回復(fù)自己的位置信息,節(jié)點123收到節(jié)點9的位置信息,這個時候位置查找成功。這里轉(zhuǎn)發(fā)方式全部采用貪心算法。

3 位置服務(wù)算法比較
    表1為幾種有關(guān)位置服務(wù)算法的比較。比較規(guī)則如下:(1)局部信息指位置服務(wù)有無提供除本節(jié)點位置信息以外的其他局部節(jié)點的信息,記錄局部信息對于移動網(wǎng)絡(luò)的無狀態(tài)通信非常有優(yōu)勢;(2)健壯性指網(wǎng)絡(luò)中個別節(jié)點失敗影響到節(jié)點通信的規(guī)模。健壯性越高,影響節(jié)點的數(shù)量越少;(3)復(fù)雜性指位置服務(wù)執(zhí)行操作的復(fù)雜程度。復(fù)雜性越低,位置服務(wù)越簡單,服務(wù)效率越高;(4)位置服務(wù)器是位置服務(wù)選擇的依據(jù)(有基于位置、基于節(jié)點和網(wǎng)格ID)和位置服務(wù)器主要節(jié)點位置信息的管理;(5)區(qū)域劃分指網(wǎng)絡(luò)是否根據(jù)區(qū)域劃分成小的網(wǎng)絡(luò).區(qū)域劃分能減少網(wǎng)絡(luò)總體能源和帶寬,對于能源和帶寬有限的MANET非常有意義;(6)更新和查找策略指更新和查找過程中位置服務(wù)的策略,有單播、廣播、洪泛、樹形(按照樹行的方式有規(guī)則的傳播)。因MANET的能量和帶寬非常有限,應(yīng)盡量避免洪泛操作,按一定規(guī)則方式建立起來的樹形傳播方式,則方便了鏈路的建立。

    本文結(jié)合MANET中網(wǎng)格位置服務(wù)、可預(yù)測的位置服務(wù)和HASH分組的方法提出了基于網(wǎng)格可預(yù)測的位置服務(wù)算法,該算法使用網(wǎng)格來劃分網(wǎng)絡(luò),并使用HASH方法對網(wǎng)格進(jìn)行分組,通過建立預(yù)測模型的方法查找目的節(jié)點位置,提高目的節(jié)點位置查找的準(zhǔn)確性。算法中源節(jié)點根據(jù)目的節(jié)點所在的網(wǎng)格分組,通過貪心算法向該分組中的網(wǎng)格發(fā)送查找目的節(jié)點的信息,根據(jù)目的節(jié)點的歷史位置信息來預(yù)測目的節(jié)點的位置。把網(wǎng)格和預(yù)測結(jié)合在一起,避免了洪泛,減少了網(wǎng)絡(luò)的帶寬并提高了包的抵達(dá)率,提高了位置服務(wù)的性能。因此,在不增加網(wǎng)絡(luò)帶寬的前提下提高了位置服務(wù)效率,節(jié)約了網(wǎng)絡(luò)的能源和帶寬。
參考文獻(xiàn)
[1] LI J, JANNOTTI J, DE C, et al. A scalable location service for geographic Ad hoc routing[C]. Proceedings of the 6th Annual ACM/IEEE International Conference on Mobile Computing and Networking (MobiCom), 2000:120-130.
[2] SU K F, CHOU C, WANG Wei Tong, et al. Improving data transmission with helping nodes for geographical Ad hoc routing[J]. Computer Networks, 2007,51:4997-5010.
[3] LUO Xin Wei, CAMP T, NAVIDI W. Predictive methods for location services in mobile Ad hoc networks[C]. Proceedings of the 5th IEEE International Workshop on Algorithms for Wireless, Mobile, Ad Hoc and Sensor Networks(WMAN), 2005:246-252.
[4] DERHAB A, BADACHE N. Balancing the tradeoffs between scalability and availability in mobile Ad hoc networks with a flat hashing-based location service[J]. Ad Hoc Networks, 2008(6):1013-1030.
[5] 于宏毅.無線移動自組織網(wǎng)[M].北京:人民郵電出版社,2005.
[6] 張帆,李德敏,陶莉.基于位置信息的MANET路由協(xié)議綜述[J].計算機工程與應(yīng)用,2005(20):120-123.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。