專利名稱:基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機會網(wǎng)絡(luò)技術(shù)的領(lǐng)域,特別涉及一種采用了基于感染(印idemic)機制的路由技術(shù)、并且為網(wǎng)絡(luò)中的每個節(jié)點分配了獨立標(biāo)識的機會網(wǎng)絡(luò)。
背景技術(shù):
機會網(wǎng)絡(luò)是一種不需要在源節(jié)點和目的節(jié)點之間存在完整路徑、利用節(jié)點移動帶來的相遇機會實現(xiàn)通信的、時延和斷裂可容忍的無線自組織網(wǎng)絡(luò);在一些無線網(wǎng)絡(luò)應(yīng)用領(lǐng)域中無法建立全連通的網(wǎng)絡(luò)拓?fù)?,?dǎo)致傳統(tǒng)的多跳自組織網(wǎng)絡(luò)通信協(xié)議無法正常運行,而機會網(wǎng)絡(luò)能夠在無線鏈路斷開和網(wǎng)絡(luò)分裂的情況下完成數(shù)據(jù)傳送任務(wù);它既是一種具體的組網(wǎng)形式,也是一種網(wǎng)絡(luò)通信新技術(shù),被視為移動Ad Hoc網(wǎng)絡(luò)發(fā)展的重要方向,對未來普適計算具有重大影響。機會網(wǎng)絡(luò)體系架構(gòu)的一個重要組成部分是路由技術(shù)。到目前為止,以機會網(wǎng)絡(luò)為背景條件的路由方法主要包括基于冗余的路由、基于效用的路由、冗余效用混合的路由和基于主動運動的路由四類?;诟腥緳C制的路由方法作為基于冗余的路由方法的一個子類,近年來引起了廣泛關(guān)注并得到越來越深入的研究和應(yīng)用。感染機制的主要思路是利用節(jié)點在運動中相遇的機會逐跳地傳送消息,其基本步驟如下(1)當(dāng)網(wǎng)絡(luò)中的節(jié)點A采用一定的節(jié)點相遇(“相遇”指相互進入對方的通信范圍)檢測機制檢測到與節(jié)點B相遇時,A將自己存儲的消息(message,指用于傳送業(yè)務(wù)數(shù)據(jù)的獨立完整的信息單元)的索引矢量(Summary Vector,一種二進制矢量,矢量中每一位的位置通過哈希映射與一個消息的源節(jié)點和序號關(guān)聯(lián),其值代表該消息在當(dāng)前節(jié)點存儲與否)裝入一個SV消息(SV message,指裝載索引矢量的控制信息單元)并向B發(fā)送。(2)B收到A發(fā)來的SV消息后用其中的索引矢量@與自己所存消息的索引矢量^;進行運算,確定出自己尚未存有的消息所對應(yīng)的矢量-請求矢量,記為@,即 REQb =SVa+Wb。(3) B將^;裝入1個Request消息(Request message,指裝載請求矢量的控制信息單元),并將其發(fā)送給A,請求A發(fā)送自己沒有的消息。(4) A收到B發(fā)來的Request消息后,根據(jù)其中的請求矢量 ^;找到自己存有而B 沒有的消息,然后發(fā)送給B。(5)類似地,以節(jié)點B為SV消息的發(fā)起者,B、A重復(fù)步驟(1) (4)的操作。使用感染機制的機會網(wǎng)絡(luò)節(jié)點需要采用“存儲-攜帶-轉(zhuǎn)發(fā)”的方式處理消息,在未將消息傳送到目的節(jié)點時,不會刪除消息,而是攜帶著它們一起運動。感染機制的基本思想最初由 Demers 等人提出(參見文獻:A. Demers,D. Greene, C. Hauser,ff. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, D. Terry. Epidemic Algorithms for Replicated Database Maintenance[C]. Proceedings of the Sixth Symposium on Principles of Distributed Computing, 1987 :1_12),用于網(wǎng)絡(luò)中不同節(jié)點的數(shù)據(jù)庫信息的管理和維護。
5其后,Vahdat和Becker改進了原有的感染機制使之適合機會網(wǎng)絡(luò)拓?fù)溟g斷連接的特點, 以此為基礎(chǔ)提出了感染路由(Epidemic Routing)協(xié)議(參見文獻:A. Vahdat, D. Becker. Epidemic Routing for Partially-Connected Ad Hoc Networks[R]. Technical Report CS-200006, Duke University, Durham, 2000),感染路由協(xié)議采用“存儲_攜帶_轉(zhuǎn)發(fā)”的方式處理數(shù)據(jù),以 IMEP(Internet MANET Encapsulation Protocol)協(xié)議(參見文獻 M.S. Corson, S.Papademetriou, P.Papadopoulos, V.Park, A. Qayyum. An Internet MANET. Encapsulation. Protocol (IMEP). Specification[R]. draft-ietf-manet-imep-spec-01. txt, 1999)作為相遇節(jié)點感知機制,在節(jié)點相遇時通過索引矢量和消息的交換實現(xiàn)數(shù)據(jù)在網(wǎng)絡(luò)中的逐跳傳遞,能夠在機會網(wǎng)絡(luò)中可靠地傳輸數(shù)據(jù)而不需要先驗拓?fù)湫畔⒌膸椭?,且消息的端到端時延較小。Matsuda和Takine設(shè)計了 (p,q)感染((p, q)-Epidemic)路由協(xié)議(:T. Matsuda, Τ. Takine. (ρ, q) -Epidemic Routing for Sparsely Populated Mobile Ad Hoc Networks[J]. IEEE Journal on Selected Areas in Communications, Vol. 26,No. 5,2008 :783-793),根據(jù)網(wǎng)絡(luò)狀態(tài)綜合使用2_Hop轉(zhuǎn)發(fā)和傳統(tǒng)的感染路由算法, 并采用一種被稱為“VACCINE”的機制(參見文獻Z. Haas,T. Small. A New Networking Model for Biological Applications of Ad Hoc Sensor Networks[J]. IEEE/ACM Transaction on Networking, 2006,14 (1) :27-40),通過廣播已達(dá)目的地消息的信息來消除節(jié)點緩存中已到達(dá)目的節(jié)點的消息,減少存儲開銷。Wang Xin等人提出了一種自適應(yīng)隨機化的感染路由協(xié)議(參見文獻Wang Xin, Shu Yan-Tai, Jin Zhi-Gang, Pan Qing-Fen, Lee Bu-Sung. Adaptive Randomized Epidemic Routing for Disruption Tolerant Networks[C]. Proceedings of the 5th International Conference on Mobile Ad-hoc and Sensor Networks. 2009 =424-429),該協(xié)議使用表達(dá)式 Wij = G1Ri (Ts) +C2Pij^C3TTLij 計算消息i經(jīng)歷了 j跳傳遞后的權(quán)值Wu,其中,Ri(Ts)為復(fù)制密度,Pij為轉(zhuǎn)發(fā)概率,TTLij 為生存時間參數(shù),C1, C2, C3是預(yù)設(shè)常數(shù);并根據(jù)權(quán)值^在轉(zhuǎn)發(fā)和刪除過程中對消息排序以提高時延等性能,但如何根據(jù)網(wǎng)絡(luò)條件為Cp C2, C3的選取合適的值是個不易解決的問題。Hong Bian等提出了一種限制消息復(fù)制數(shù)量的控制方法(參見文獻Hong Bian, Haizheng Yu. An Efficient Control Method of Multi-copy Routing in DTN[C], 2010 Second International Conference on Networks Security, Wireless Communications and Trusted Computing (NSWCTC),2010 :153-156),用1個節(jié)點相遇計數(shù)器記錄存有相同消息的節(jié)點的相遇次數(shù),當(dāng)計數(shù)器的值到達(dá)設(shè)定閾值時從緩存中刪除該消息;該方法有利于降低節(jié)點存儲開銷,但閾值的合適選取不易做到。kda等設(shè)計了一種分享控制信息的傳輸策略(參見文獻H. Ueda, N. Fujita. A Message Transmission Control Scheme for Efficient Information Sharing in Disruption Tolerant Networks[C].2010 2nd International Conference on Intelligent Networking and Collaborative Systems (INCOS),2010 :392-397),該策略建立了 SV消息的接收日志,用于記錄鄰居節(jié)點廣播的SV消息;通過比較SV消息日志中所存鄰居節(jié)點的SV消息與自己的SV消息,當(dāng)前節(jié)點能夠判斷自己是否有鄰居節(jié)點沒有的消息,從而決定是否廣播SV消息;該策略能夠減少傳染路由中冗余SV消息的廣播,但建立SV消息的接收日志會帶來額外的存儲開銷,而且由于 SV消息的接收日志難以及時更新,會導(dǎo)致節(jié)點的判斷出現(xiàn)偏差,仍然存在冗余的SV消息。
從上述文獻內(nèi)容和研究現(xiàn)狀來看,自從感染路由協(xié)議提出以后,人們對其加以改進和拓展的研究一直在進行,在消息轉(zhuǎn)發(fā)、節(jié)點緩存管理、節(jié)點相遇感知以及與其它轉(zhuǎn)發(fā)方式的結(jié)合等方面已取得一定進展,但在SV消息和Request消息的傳輸以及索引矢量的存儲等方面,仍然存在冗余的通信和存儲開銷,此問題到目前為止未得到有效解決,而它對采用感染機制的路由方法的效率和可擴展性等性能具有重要影響,因此有進一步研究解決的需要,本發(fā)明將針對這個問題提出一個創(chuàng)新性的解決方法。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題是解決現(xiàn)有基于感染機制的機會網(wǎng)絡(luò)路由方法存在的以下幾個問題(1)當(dāng)兩個節(jié)點相遇時,在索引矢量的傳遞過程中,減少需要收發(fā)的SV消息和 Request消息的數(shù)量;(2)減少節(jié)點存儲的索引矢量的矢量長度;(3)縮短SV消息和Request消息的長度。本發(fā)明的目的是這樣實現(xiàn)的本發(fā)明提供的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,包括在邏輯上具有先后關(guān)系的節(jié)點相遇感知階段、目的地為相遇節(jié)點的消息交換階段、自適應(yīng)索引矢量傳遞階段和消息交換階段,具體包括以下步驟Sl 所述節(jié)點相遇感知階段,用于節(jié)點周期性廣播消息,感知節(jié)點相遇,記錄相遇節(jié)點信息;S2 所述目的地為相遇節(jié)點的消息交換階段,用于發(fā)送目的地為相遇節(jié)點的消息, 目的節(jié)點接收處理消息;S3:所述自適應(yīng)索引矢量傳遞階段,用于判斷并執(zhí)行是否對接收到的消息中的索引矢量的壓縮操作,發(fā)送SV消息,處理接收到的SV消息,發(fā)送Request消息,處理接收到的 Request 消息;S4:所述消息交換階段,用于根據(jù)階段S3所獲得的消息來確定待交換消息,發(fā)送待交換消息,更新存儲的索引矢量。進一步,所述S2中發(fā)送目的地為相遇節(jié)點的消息的具體操作,包括以下步驟S21 如果兩個節(jié)點各自確定與對方相遇后,它們分別獨立地從消息緩存中搜索出目的地為對方的消息并發(fā)送給對方,同時記錄這些已到達(dá)目的地的消息的信息,記錄時用索引矢量的方式或用消息標(biāo)識集合的方式;S22:如果沒有目的地為對方的消息,則直接執(zhí)行S3所述自適應(yīng)索引矢量傳遞階段的操作。進一步,所述S3中判斷并執(zhí)行對索引矢量的壓縮操作的具體步驟為S311 將網(wǎng)絡(luò)中源節(jié)點發(fā)送的消息的原始索引矢量分段,每段索引矢量的位數(shù)對應(yīng)每個源節(jié)點所發(fā)送消息的存儲狀況;S312:判斷每段索引矢量是否存在相同的連續(xù)數(shù)字信號,如果有,則進入步驟 S314用壓縮方法將其壓縮為壓縮索引矢量;S313 如果無,則進入步驟S316存儲原始的索引矢量;S314 保留每一段中間的M-F-L位,用二進制數(shù)標(biāo)識出F和L的大小,不再列出每段索引矢量的前F位和后L位,壓縮索引矢量包括N段中間的M-F-L位和兩個顯示前后省略的位數(shù)的標(biāo)識字段;其中,N表示網(wǎng)絡(luò)中產(chǎn)生消息的源節(jié)點的個數(shù),M表示每個源節(jié)點產(chǎn)生并發(fā)送消息的個數(shù);S315:比較原始索引矢量的長度是否大于壓縮索引矢量的長度,如果否,則存儲壓縮索引矢量S316 如果是,則存儲原始的索引矢量。進一步,所述S3中處理接收到的SV消息的具體步驟為S321 當(dāng)前節(jié)點如果收到相遇節(jié)點發(fā)來的SV消息,則從中提取出接收索引矢量;S322:判斷接收索引矢量是否經(jīng)過壓縮,當(dāng)索引矢量長度小于匪,表明經(jīng)過壓縮, 則用還原方法將其還原為原始索引矢量;S323 如果否,則表明未經(jīng)壓縮,進入下一步;S324:判斷當(dāng)前節(jié)點所存儲的索引矢量是否經(jīng)過壓縮,如果進行了壓縮,則用還原方法將其還原為原始索引矢量;S325:比較接收索引矢量與當(dāng)前索引矢量,通過位運算按以下公式確定自己有而對方節(jié)點沒有的消息對應(yīng)的請求矢量^以及對方節(jié)點有而自己沒有的消息對應(yīng)的請求矢量REQB IU^a =SVb+SVa,REQb =SVa+SVb ,其中,當(dāng)前節(jié)點B與節(jié)點A相遇,節(jié)點B收到節(jié)點A發(fā)送的SV消息及其攜帶的索引矢量S326:采用壓縮方法對請求矢量_進行壓縮,得到壓縮請求矢量,所述壓縮方法為對于請求矢量中每段都含有的相同的值為“0”的前F位,用二進制數(shù)標(biāo)識出F的大小;對于每段都含有的相同的值為“0”后L位,用二進制數(shù)標(biāo)識出L的大小;保留每一段中間的M-F-L位,不再列出每段的前F位和后L位,壓縮請求矢量包括N段中間的M-F-L位, 兩個顯示前后省略的位數(shù)的標(biāo)識字段。進一步,所述還原方法為在每段的前面加“1”,“1”的個數(shù)等于第1個標(biāo)識字段的值;在每段的后面加“0”,“0”的個數(shù)等于第2個標(biāo)識字段的值。進一步,所述S3中發(fā)送Request消息的具體操作為S341 當(dāng)前節(jié)點接收到相遇節(jié)點發(fā)來的SV消息,則在網(wǎng)絡(luò)層產(chǎn)生Request消息;S342:比較原始請求矢量、壓縮請求矢量以及待傳消息標(biāo)識集合三者的長度,選擇長度最短者裝入Request消息,并在Request消息的頭部設(shè)置用于表示裝載信息的類型的標(biāo)志位;S343 將該Request消息發(fā)送給相遇節(jié)點。進一步,所述S3中處理接收到的Request消息的具體步驟為S351 當(dāng)前節(jié)點接收到相遇節(jié)點發(fā)來的Request消息,取出它裝載的信息;S352 根據(jù)Request消息頭部的標(biāo)志位和數(shù)據(jù)字段的長度判斷是否是壓縮請求矢量,如果是,則用還原方法將其還原為原始索引矢量;S;352 如果否,進入下一階段。
進一步,所述S4中確定待交換消息的具體操作為S411 當(dāng)前節(jié)點根據(jù)請求矢量、請求矢量 ^;或者通過處理接收到的 Request消息來所獲得對方的請求矢量;S412:根據(jù)請求矢量與消息的對應(yīng)規(guī)則,查找到自己有而對方?jīng)]有的消息以備發(fā)送給對方。進一步,所述S4中更新存儲的索引矢量的具體步驟為S421 當(dāng)前節(jié)點接收到對方節(jié)點發(fā)來的消息,判斷自己存儲的索引矢量是否被壓縮,若存儲的索引矢量經(jīng)過壓縮,則用還原方法將其還原為原始索引矢量;S422 根據(jù)接收到的消息與索引矢量的對應(yīng)規(guī)則,更新索引矢量;S423:采用索引矢量的壓縮方法,壓縮更新后的索引矢量,如果壓縮后的更新索引矢量比壓縮前的索引矢量短,則當(dāng)前節(jié)點存儲壓縮后的索引矢量。進一步,所述節(jié)點相遇感知階段,具體包括以下步驟Sll 判斷Hello消息廣播時間是否結(jié)束,如果是,則廣播的Hello消息;S12 如果否,則判斷是否收到Hello消息,如果是,則轉(zhuǎn)入S15 ;S13 如果否,則判斷收到目的地是否為自己的消息;如果是,則轉(zhuǎn)入S15 ;S14 如果否,則判斷是否收到發(fā)給自己的SV消息;如果否,則返回Sll ;S15 如果是,則確定為與其它節(jié)點相遇,并記錄相遇節(jié)點信息,實現(xiàn)節(jié)點相遇感知過程。本發(fā)明的優(yōu)點在于本發(fā)明提供的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,包括在邏輯上具有先后關(guān)系的節(jié)點相遇感知階段、目的地為相遇節(jié)點的消息交換階段、自適應(yīng)索引矢量傳遞階段和消息交換階段,共4個階段內(nèi)的13個操作步驟,通過減少SV 消息和Request消息的數(shù)量、自適應(yīng)壓縮索引矢量長度、縮短SV消息和Request消息長度 3種新機制,在不影響機會網(wǎng)絡(luò)消息傳送功能的前提下,使SV消息接收節(jié)點通過計算可以得到自己有而對方節(jié)點沒有的消息對應(yīng)的請求矢量,根據(jù)該請求矢量直接傳送對方節(jié)點沒有的消息,從而減少了 50%的SV消息和50%的Request消息,降低了機會網(wǎng)絡(luò)節(jié)點的通信開銷和網(wǎng)絡(luò)帶寬消耗;自適應(yīng)地壓縮節(jié)點存儲的索引矢量的長度,減小了機會網(wǎng)絡(luò)節(jié)點存儲開銷;同時,SV消息攜帶壓縮后的索引矢量,縮短了 SV消息的長度,并且通過在原始請求矢量、壓縮請求矢量和待傳消息標(biāo)識集合三者中選擇最短者發(fā)送,自適應(yīng)地縮短了 Request 消息的長度,使節(jié)點通信開銷和網(wǎng)絡(luò)帶寬消耗進一步降低;節(jié)點通信、存儲、能量等方面開銷的降低,再加上網(wǎng)絡(luò)無線帶寬資源的節(jié)省,增強了機會網(wǎng)絡(luò)路由方法的效率和可擴展性。本發(fā)明的其它優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其它優(yōu)點可以通過下面的說明書,權(quán)利要求書,以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步的詳細(xì)描述,其中圖1為本發(fā)明提出的路由方法的組成框圖2為傳統(tǒng)的基于感染機制的路由方法與本發(fā)明中路由方法的對比示意圖;圖3為本發(fā)明提出的索引矢量壓縮機制示意圖;圖4為本發(fā)明的自適應(yīng)索引矢量傳遞階段(階段3)操作流程圖;圖5為本發(fā)明的節(jié)點相遇感知階段(階段1)操作流程圖。
具體實施例方式以下將結(jié)合附圖,對本發(fā)明的優(yōu)選實施例進行詳細(xì)的描述;應(yīng)當(dāng)理解,優(yōu)選實施例僅為了說明本發(fā)明,而不是為了限制本發(fā)明的保護范圍。下面對附圖進行詳細(xì)說明圖1為本發(fā)明提出的路由方法的組成框圖?;谧赃m應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法由節(jié)點相遇感知、目的地為相遇節(jié)點的消息交換、自適應(yīng)索引矢量傳遞和消息交換4個階段內(nèi)的13個操作步驟組成,這 13個步驟是(1)節(jié)點周期性廣播Hello消息;(2)感知節(jié)點相遇;(3)記錄相遇節(jié)點信息; (4)發(fā)送目的地為相遇節(jié)點的消息;(5)目的節(jié)點接收處理消息;(6)判斷并執(zhí)行對索引矢量的壓縮操作;(7)發(fā)送SV消息;(8)處理接收到的SV消息;(9)發(fā)送Request消息;(10) 處理接收到的Request消息;(11)確定待交換消息;(12)發(fā)送待交換消息;(13)更新存儲的索引矢量。圖2為傳統(tǒng)的基于感染機制的路由方法與本發(fā)明中路由方法的對比示意圖。(a)為傳統(tǒng)的基于感染機制的路由方法。節(jié)點B收到A周期性廣播的BECON消息后,回復(fù)一個ECHO消息給節(jié)點A,節(jié)點A,B完成相遇感知過程。然后A先將包含有索引矢量@的SV消息發(fā)送給B ;B收到SV消息后用其中的索引矢量@與自己所存消息的索引矢量^;進行運算,確定出自己尚未存有的消息所對應(yīng)的矢量-請求矢量@,即 REQb=Wa +Wb-^將^;裝入Request消息發(fā)送給A ;A收到B發(fā)來的Request消息后,根
據(jù)其中的請求矢量 ^;找到自己存有而B沒有的消息,然后發(fā)送給B。B作為SV消息的發(fā)起者執(zhí)行類似的過程將A沒有的消息發(fā)送給A.(b)為本發(fā)明的路由方法。A收到B周期性廣播的Hello消息后,確定與B相遇; 然后將消息緩存中目的地為B的消息發(fā)送給節(jié)點B,并且將自己存儲的經(jīng)過壓縮操作的索引矢量^;裝入SV消息發(fā)送給B ;B通過接收A發(fā)送的目的地為自己的消息或者SV消息確定與A相遇,然后將自己緩存中目的地為A的消息發(fā)送給A ;B收到A的SV消息及其攜帶的索引矢量,則它用@與自己所存消息的索引矢量%進行運算,確定出自己沒有而A 存有的消息所對應(yīng)的請求矢量 ^;以及自己存有而A沒有的消息所對應(yīng)的請求矢量^, 即,+ 將·;、壓縮后的]^;和待傳消息標(biāo)識集合中長度較短者裝入Request消息發(fā)送給A ;B根據(jù)^對應(yīng)的消息將A沒有的消息發(fā)送給A ;A 根據(jù)Request消息中的 ^;或者待傳消息標(biāo)識集合對應(yīng)的消息將B沒有的消息發(fā)送給B。從圖中可直觀看出,本發(fā)明提出的路由方法在控制消息的數(shù)量和長度、存儲空間的占用方面都有所降低。圖3為本發(fā)明提出的索引矢量壓縮機制示意圖。
10
(a)為原始索引矢量,網(wǎng)絡(luò)中有5個產(chǎn)生消息的源節(jié)點,每個源節(jié)點共發(fā)送10個消息,即每10個比特位為一段,對應(yīng)一個源節(jié)點產(chǎn)生消息的情況。(b)為壓縮后的索引矢量,對于每段都含有的相同的前F位,用二進制數(shù)標(biāo)識出F 的大小,其中F = 3 ;對于每段都含有的相同的后L位,用二進制數(shù)標(biāo)識出L的大小,其中L =3 ;兩個二進制標(biāo)識的長度為[log/]+1 = 4,其中M= 10。壓縮后的索引矢量包括5段中間的M-F-L位,兩個顯示前后省略的位數(shù)的標(biāo)識字段。從圖中可直觀看出,原始的索引矢量長度為5X10 = 50位,壓縮后的索引矢量長度變?yōu)?+5X5 = 33位,減小了 50-33 = 17位。圖4為本發(fā)明的自適應(yīng)索引矢量傳遞階段(階段3)操作流程圖。節(jié)點首先壓縮自己的索引矢量,如果壓縮后的索引矢量更短,則當(dāng)前節(jié)點存儲壓縮后的索引矢量而不再存儲原始的索引矢量。當(dāng)前節(jié)點如果收到相遇節(jié)點發(fā)來的SV消息,則從中提取出索引矢量;然后,判斷接收的索引矢量和自己存儲的索引矢量是否經(jīng)過壓縮,如果索引矢量經(jīng)過壓縮,則對其進行還原;然后通過比對運算確定出自己沒有而對方節(jié)點存有的消息所對應(yīng)的請求矢量,壓縮該請求矢量;接著,比較原始請求矢量、壓縮請求矢量以及待傳消息標(biāo)識集合三者的長度,選擇長度最短者裝入Request消息發(fā)送給對方節(jié)點。當(dāng)前節(jié)點如果未收到相遇節(jié)點發(fā)來的SV消息,則在其網(wǎng)絡(luò)層產(chǎn)生1個SV消息并裝入自己所存的索引矢量,然后將該SV消息發(fā)送給相遇節(jié)點。當(dāng)前節(jié)點如果收到Request消息,首先提取出Request消息所裝載的信息;然后判斷該信息是否為壓縮請求矢量,若是,則還原該壓縮請求矢量。當(dāng)前節(jié)點如果未收到Request消息,則循環(huán)等待接收,直到條件{收到對方的發(fā)來的消息} U {收到對方廣播的Hello消息} U {不再與對方相鄰}滿足后進入下一階段。圖5為本發(fā)明的節(jié)點相遇感知階段(階段1)操作流程圖。在本發(fā)明中,每個節(jié)點周期性的廣播Hello消息,一個節(jié)點可以通過收到廣播的 Hello消息、收到目的地為自己的消息和收到發(fā)給自己的SV消息來感知并確定與其它節(jié)點相遇并記錄相遇節(jié)點信息,實現(xiàn)節(jié)點相遇感知過程。本發(fā)明適用于采用基于感染機制的路由技術(shù)的機會網(wǎng)絡(luò)領(lǐng)域。一個具體實施的方式為在節(jié)點數(shù)不小于3的機會網(wǎng)絡(luò)中,節(jié)點處于間歇或持續(xù)的運動狀態(tài),它們之間有消息需要傳送,可以使用本發(fā)明提出的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,通過“存儲-攜帶-轉(zhuǎn)發(fā)”的方式,借助節(jié)點相遇的機會,以較小的開銷,一步步地將消息從源節(jié)點逐跳傳送到目的節(jié)點。通過本發(fā)明設(shè)計的減少SV消息和Request消息的數(shù)量、自適應(yīng)壓縮索引矢量長度、縮短SV消息和Request消息長度3種新機制,在實現(xiàn)消息成功傳送的同時,減少控制消息的數(shù)量,縮短控制消息的長度,自適應(yīng)地壓縮節(jié)點消耗的存儲空間,從而降低機會網(wǎng)絡(luò)節(jié)點的通信和存儲開銷,節(jié)約節(jié)點能量并節(jié)省網(wǎng)絡(luò)帶寬資源,增強路由方法的效率和可擴展性。在本發(fā)明中He 1 Io消息的廣播周期ΤΜ1。的值可以根據(jù)機會網(wǎng)絡(luò)的具體條件進行設(shè)置,參照現(xiàn)有的IETF(Internet Engineering Task Force)國際標(biāo)準(zhǔn)文稿 RFC3561 (Ad-hoc On-demand Distance Vector (AODV) Routing)的內(nèi)容,THell。的缺省值可以設(shè)置為1秒。
11
圖1為本發(fā)明提出的路由方法的組成框圖,如圖所示本發(fā)明提供的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,包括在邏輯上具有先后關(guān)系的節(jié)點相遇感知階段、目的地為相遇節(jié)點的消息交換階段、自適應(yīng)索引矢量傳遞階段和消息交換階段,具體包括以下步驟Sl 所述節(jié)點相遇感知階段,用于節(jié)點周期性廣播消息,感知節(jié)點相遇,記錄相遇節(jié)點信息;每個節(jié)點都以一定的周期重復(fù)廣播Hello消息,Hello消息包含節(jié)點的標(biāo)識(唯一表示節(jié)點的符號集合,如節(jié)點地址);當(dāng)兩個節(jié)點相互進入對方的通信范圍后,它們分別獨立地在各自的網(wǎng)絡(luò)層通過3種方式感知并判定與對方相遇①收到對方節(jié)點廣播的 Hello消息;②收到對方節(jié)點發(fā)來的目的地為自己的消息;③收到對方節(jié)點發(fā)來的SV消息。 如果當(dāng)前節(jié)點確定與其它節(jié)點相遇,則將相遇節(jié)點的標(biāo)識存入鄰居表,然后執(zhí)行下一階段的操作。具體包括以下步驟Sll 判斷Hello消息廣播時間是否結(jié)束,如果是,則廣播的Hello消息;S12 如果否,則判斷是否收到Hello消息,如果是,則轉(zhuǎn)入S15 ;S13 如果否,則判斷收到目的地是否為自己的消息;如果是,則轉(zhuǎn)入S15 ;S14 如果否,則判斷是否收到發(fā)給自己的SV消息;如果否,則返回Sll ;S15:如果是,則確定為與其它節(jié)點相遇,并記錄相遇節(jié)點信息,實現(xiàn)節(jié)點相遇感知過程。S2 所述目的地為相遇節(jié)點的消息交換階段,用于發(fā)送目的地為相遇節(jié)點的消息, 目的節(jié)點接收處理消息;確定相遇的兩個節(jié)點,分別獨立地從消息緩存中搜索出目的地為對方的消息并發(fā)送給對方,同時記錄這些已到達(dá)目的地的消息的信息;如果沒有目的地為對方的消息,則直接執(zhí)行下一階段的操作。節(jié)點收到目的地為自己的消息后,將這些消息發(fā)往應(yīng)用層;然后,記錄它們的標(biāo)識 (消息的標(biāo)識是一種唯一標(biāo)識消息的符號集合,通常由節(jié)點標(biāo)識和消息序號兩部分構(gòu)成,例如節(jié)點標(biāo)識為16bits,消息序號為16bits,則1個消息標(biāo)識的長度為32bits)并從消息緩存中刪除它們。所述S2中發(fā)送目的地為相遇節(jié)點的消息的具體操作,包括以下步驟S21 如果兩個節(jié)點各自確定與對方相遇后,它們分別獨立地從消息緩存中搜索出目的地為對方的消息并發(fā)送給對方,同時記錄這些已到達(dá)目的地的消息的信息,記錄時用索引矢量的方式或用消息標(biāo)識集合的方式;S22:如果沒有目的地為對方的消息,則直接執(zhí)行S3所述自適應(yīng)索引矢量傳遞階段的操作。S3:所述自適應(yīng)索引矢量傳遞階段,用于判斷并執(zhí)行對索引矢量的壓縮操作,發(fā)送 SV消息,處理接收到的SV消息,發(fā)送Request消息,處理接收到的Request消息;所述S3中判斷并執(zhí)行對索引矢量的壓縮操作,的具體步驟為S311 將網(wǎng)絡(luò)中源節(jié)點發(fā)送的消息的原始索引矢量分段,每段索引矢量的位數(shù)對應(yīng)每個源節(jié)點所發(fā)送消息的存儲狀況;S312:判斷每段索引矢量是否存在相同的連續(xù)數(shù)字信號,如果有,則進入步驟S314用壓縮方法將其壓縮為壓縮索引矢量;S313 如果無,則進入步驟S316存儲原始的索引矢量;S314 保留每一段中間的M-F-L位,用二進制數(shù)標(biāo)識出F和L的大小,不再列出每段索引矢量的前F位和后L位,壓縮索引矢量包括N段中間的M-F-L位和兩個顯示前后省略的位數(shù)的標(biāo)識字段;其中,N表示網(wǎng)絡(luò)中產(chǎn)生消息的源節(jié)點的個數(shù),M表示每個源節(jié)點產(chǎn)生并發(fā)送消息的個數(shù);S315:比較原始索引矢量的長度是否大于壓縮索引矢量的長度,如果否,則存儲壓縮索引矢量S316 如果是,則存儲原始的索引矢量?,F(xiàn)舉例說明判斷并執(zhí)行對索引矢量的壓縮操作。設(shè)網(wǎng)絡(luò)中有Ν(Ν>0)個產(chǎn)生消息的源節(jié)點,每個源節(jié)點共產(chǎn)生并發(fā)送Μ(Μ>0) 個消息,則原始的索引矢量長度L0為L0 = NM(1)它可分為N個M位的段,每1段對應(yīng)1個源節(jié)點所發(fā)消息的存儲狀況。如果這N 段的前F(F>0)位的值都為“1”或者后L(L>0)位的值都為“0”,則可對索引矢量進行壓縮;壓縮的方法是保留每一段中間的M-F-L位,用長度為[log2M]+l的二進制數(shù)標(biāo)識出F和 L的大小,不再列出每段的前F位和后L位。壓縮后的索引矢量包括N段中間的M-F-L位, 兩個顯示前后省略的位數(shù)的標(biāo)識字段;設(shè)壓縮后的索引矢量的長度為L。(L。> 0),則有Lc = NX(M-F-L)+2([1o&m]+1)=W-{N(F+L)_2([1O&m]+1)} (2)當(dāng)N(F+L)_2([log2M]+l) > 0,即
權(quán)利要求
1.基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征在于包括在邏輯上具有先后關(guān)系的節(jié)點相遇感知階段、目的地為相遇節(jié)點的消息交換階段、自適應(yīng)索引矢量傳遞階段和消息交換階段,具體包括以下步驟51所述節(jié)點相遇感知階段,用于節(jié)點周期性廣播消息,感知節(jié)點相遇,記錄相遇節(jié)點 fn息;52所述目的地為相遇節(jié)點的消息交換階段,用于發(fā)送目的地為相遇節(jié)點的消息,目的地節(jié)點接收并處理消息;S3:所述自適應(yīng)索引矢量傳遞階段,用于判斷并執(zhí)行是否對接收到的消息中的索引矢量進行壓縮操作,發(fā)送SV消息和處理接收到的SV消息,以及發(fā)送Request消息和處理接收到的Request消息;S4:所述消息交換階段,用于根據(jù)階段S3所獲得的消息來確定待交換消息,發(fā)送待交換消息,更新存儲的索引矢量。
2.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S2中發(fā)送目的地為相遇節(jié)點的消息的具體操作,包括以下步驟521如果兩個節(jié)點各自確定與對方相遇后,分別獨立地從消息緩存中搜索出目的地為對方的消息并發(fā)送給對方,同時記錄這些已到達(dá)目的地的消息的信息,記錄時用索引矢量的方式或用消息標(biāo)識集合的方式;522如果沒有目的地為對方的消息,則直接執(zhí)行S3所述自適應(yīng)索引矢量傳遞階段的操作。
3.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S3中判斷并執(zhí)行對索引矢量的壓縮操作的具體步驟為5311將網(wǎng)絡(luò)中源節(jié)點發(fā)送的消息的原始索引矢量分段,每段索引矢量的位數(shù)對應(yīng)每個源節(jié)點所發(fā)送消息的存儲狀況;5312判斷每段索引矢量是否存在相同的連續(xù)數(shù)字信號,如果有,則進入步驟S314用壓縮方法將其壓縮為壓縮索引矢量;5313如果無,則進入步驟S316存儲原始的索引矢量;5314保留每一段中間的M-F-L位,用二進制數(shù)標(biāo)識出F和L的大小,不再列出每段索引矢量的前F位和后L位,壓縮索引矢量包括N段中間的M-F-L位和兩個顯示前后省略的位數(shù)的標(biāo)識字段;其中,N表示網(wǎng)絡(luò)中產(chǎn)生消息的源節(jié)點的個數(shù),M表示每個源節(jié)點產(chǎn)生并發(fā)送消息的個數(shù);5315比較原始索引矢量的長度是否大于壓縮索引矢量的長度,如果否,則存儲壓縮索引矢量5316如果是,則存儲原始的索引矢量。
4.根據(jù)權(quán)利要求3所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S3中處理接收到的SV消息的具體步驟為5321當(dāng)前節(jié)點如果收到相遇節(jié)點發(fā)來的SV消息,則從中提取出接收索引矢量;5322判斷接收索引矢量是否經(jīng)過壓縮,當(dāng)索引矢量長度小于匪,表明經(jīng)過壓縮,則用還原方法將其還原為原始索引矢量;5323如果否,則表明未經(jīng)壓縮,進入下一步;S3M:判斷當(dāng)前節(jié)點所存儲的索引矢量是否經(jīng)過壓縮,如果進行了壓縮,則用還原方法將其還原為原始索引矢量;5325比較接收索引矢量與當(dāng)前索引矢量,通過位運算按以下公式確定自己有而對方節(jié)點沒有的消息對應(yīng)的請求矢量^以及對方節(jié)點有而自己沒有的消息對應(yīng)的請求矢量 REQb--REQa=SVb+SVa,REQb =SVA+SVB ,其中,M表示當(dāng)前節(jié)點B與節(jié)點A相遇,節(jié)點B收到節(jié)點A發(fā)送的SV消息及其攜帶的索引矢量,M表示B所存消息的索引矢量;5326采用壓縮方法對請求矢量@進行壓縮,得到壓縮請求矢量,所述壓縮方法為 對于請求矢量中每段都含有的相同的值為“0”的前F位,用二進制數(shù)標(biāo)識出F的大??;對于每段都含有的相同的值為“0”后L位,用二進制數(shù)標(biāo)識出L的大?。槐A裘恳欢沃虚g的 M-F-L位,不再列出每段的前F位和后L位,壓縮請求矢量包括N段中間的M-F-L位,兩個顯示前后省略的位數(shù)的標(biāo)識字段。
5.根據(jù)權(quán)利要求4所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述還原方法為在每段的前面加“1”,“1”的個數(shù)等于第1個標(biāo)識字段的值;在每段的后面加“0”,“0”的個數(shù)等于第2個標(biāo)識字段的值。
6.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S3中發(fā)送Request消息的具體操作為5341當(dāng)前節(jié)點接收到相遇節(jié)點發(fā)來的SV消息,則在網(wǎng)絡(luò)層產(chǎn)生Request消息;5342比較原始請求矢量、壓縮請求矢量以及待傳消息標(biāo)識集合三者的長度,選擇長度最短者裝入Request消息,并在Request消息的頭部設(shè)置用于表示裝載信息的類型的標(biāo)志位;5343將該Request消息發(fā)送給相遇節(jié)點。
7.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S3中處理接收到的Request消息的具體步驟為5351當(dāng)前節(jié)點接收到相遇節(jié)點發(fā)來的Request消息,取出它裝載的信息;5352根據(jù)Request消息頭部的標(biāo)志位和數(shù)據(jù)字段的長度判斷是否是壓縮請求矢量, 如果是,則用還原方法將其還原為原始索引矢量;S352 如果否,進入下一階段。
8.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S4中確定待交換消息的具體操作為5411當(dāng)前節(jié)點根據(jù)請求矢量^、請求矢量 ^;或者通過處理接收到的Request消息來所獲得對方的請求矢量;5412根據(jù)請求矢量與消息的對應(yīng)規(guī)則,查找到自己有而對方?jīng)]有的消息以備發(fā)送給對方。
9.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征是所述S4中更新存儲的索引矢量的具體步驟為·5·421當(dāng)前節(jié)點接收到對方節(jié)點發(fā)來的消息,判斷自己存儲的索引矢量是否被壓縮,若存儲的索引矢量經(jīng)過壓縮,則用還原方法將其還原為原始索引矢量;·5422根據(jù)接收到的消息與索引矢量的對應(yīng)規(guī)則,更新索引矢量;S423:采用索引矢量的壓縮方法,壓縮更新后的索引矢量,如果壓縮后的更新索引矢量比壓縮前的索引矢量短,則當(dāng)前節(jié)點存儲壓縮后的索引矢量。
10.根據(jù)權(quán)利要求1所述的基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,其特征在于所述節(jié)點相遇感知階段,具體包括以下步驟·511判斷Hello消息廣播時間是否結(jié)束,如果是,則廣播的Hello消息;·512如果否,則判斷是否收到Hello消息,如果是,則轉(zhuǎn)入S15 ;·513如果否,則判斷收到目的地是否為自己的消息;如果是,則轉(zhuǎn)入S15 ;·514如果否,則判斷是否收到發(fā)給自己的SV消息;如果否,則返回Sll ;·515如果是,則確定為與其它節(jié)點相遇,并記錄相遇節(jié)點信息,實現(xiàn)節(jié)點相遇感知過
全文摘要
本發(fā)明公開了一種基于自適應(yīng)索引矢量壓縮的機會網(wǎng)絡(luò)高效路由方法,由在邏輯上具有先后關(guān)系的節(jié)點相遇感知、目的地為相遇節(jié)點的消息交換、自適應(yīng)索引矢量傳遞和消息交換4個階段內(nèi)的13個操作步驟組成;本發(fā)明通過減少SV消息和Request消息的數(shù)量、自適應(yīng)壓縮索引矢量長度、縮短SV消息和Request消息長度3種新機制,在不影響機會網(wǎng)絡(luò)消息傳送功能的前提下,降低了機會網(wǎng)絡(luò)節(jié)點的通信開銷,減少了節(jié)點的存儲、能量消耗和網(wǎng)絡(luò)帶寬消耗;節(jié)點通信、存儲、能量等方面開銷的降低,再加上網(wǎng)絡(luò)無線帶寬資源的節(jié)省,增強了機會網(wǎng)絡(luò)路由方法的效率和可擴展性。
文檔編號H04W40/02GK102438276SQ20111045981
公開日2012年5月2日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者任智, 徐中浩, 陳前斌, 陳紅 申請人:重慶郵電大學(xué)