一種分布式自適應(yīng)傳輸路由協(xié)議的制作方法
【專利摘要】本發(fā)明公開了一種分布式自適應(yīng)傳輸路由協(xié)議,具體執(zhí)行步驟如下:每個節(jié)點定期廣播OGM,從而通知其鏈路本地鄰居該節(jié)點的存在;鏈路本地鄰居的接收發(fā)起人消息根據(jù)特定的協(xié)議轉(zhuǎn)發(fā)規(guī)則中繼轉(zhuǎn)播;網(wǎng)絡(luò)因此泛洪這些信源;這些泛洪過程是通過單跳的鄰居執(zhí)行的;執(zhí)行兩跳鄰居;依次類推執(zhí)行三跳鄰居,執(zhí)行四跳鄰居;OGM以UDP方式重復(fù)廣播發(fā)送,因此泛洪直到每個節(jié)點收到至少一次,或直到它們由于通信鏈路丟包,或者直到TTL值已過期別丟失。本發(fā)明實現(xiàn)對網(wǎng)絡(luò)實時維護最優(yōu)路徑和其余多跳路徑,并且能過做到對路由自動修復(fù)和重組。本發(fā)明能夠快速有效的確定每個目標節(jié)點的最佳下一跳,這種方法不需要找出或者計算出完整的路由。
【專利說明】
一種分布式自適應(yīng)傳輸路由協(xié)議
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及ad-hoc網(wǎng)絡(luò)的多路徑路由技術(shù)領(lǐng)域,具體是一種路由傳輸協(xié)議,尤其是一種分布式自適應(yīng)傳輸路由協(xié)議。
【背景技術(shù)】
[0002]無線通信網(wǎng)絡(luò)由于能快速、靈活、方便地支持用戶的移動,而成為個人通信和因特網(wǎng)發(fā)展的方向,成為了實現(xiàn)“任何人在任何時間,任何地點與任何人進行任何信息的交換”這一理想通信目標的最具潛力方案之一,在過去這么多年里,無線用心技術(shù)取得了突飛猛進的發(fā)展,從人工操作的無線電報網(wǎng)絡(luò)到使用擴頻技術(shù)的自動化無線局域、個域網(wǎng)絡(luò),無線網(wǎng)絡(luò)的應(yīng)用領(lǐng)域隨著技術(shù)的進步不斷地擴展,特別是近幾年,無線通信網(wǎng)絡(luò)無論在技術(shù)上還是在商業(yè)上都取得了飛速的發(fā)展,它完成了從第一代模擬通信到第二代數(shù)字通信及第二代數(shù)字通信到第三代寬帶多媒體通信的轉(zhuǎn)變。
[0003]目前,世界上第三代移動通信技術(shù)產(chǎn)業(yè)化的同時,已把研究重點轉(zhuǎn)入下一代無線網(wǎng)絡(luò)研究上,一般認為,下一代無線網(wǎng)絡(luò)不再是全新的單一結(jié)構(gòu)的網(wǎng)絡(luò)技術(shù),而是多種無線網(wǎng)絡(luò)技術(shù)的融合,是一個多級網(wǎng)絡(luò)形態(tài),無線網(wǎng)絡(luò)中的多跳連接將會成為下一代無線通信網(wǎng)絡(luò)發(fā)展的必然趨勢,也就是說,以多跳無線連接為主要組網(wǎng)方式的Ad Hoc網(wǎng)絡(luò)、無線多跳自組織網(wǎng)絡(luò)和無線傳感網(wǎng)絡(luò)將會成為下一代無線網(wǎng)絡(luò)的技術(shù)熱點。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種分布式自適應(yīng)傳輸路由協(xié)議,是一種專為無線自組織多跳網(wǎng)絡(luò)設(shè)計的主動路由協(xié)議,包括可移動的自組織網(wǎng)絡(luò)(MANET),以解決上述【背景技術(shù)】中提出的問題。
[0005]為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0006]—種分布式自適應(yīng)傳輸路由協(xié)議,具體執(zhí)行步驟如下:
[0007]第一步:每個節(jié)點定期廣播0GM,從而通知其鏈路本地鄰居該節(jié)點的存在;鏈路本地鄰居的接收發(fā)起人消息根據(jù)特定的協(xié)議轉(zhuǎn)發(fā)規(guī)則中繼轉(zhuǎn)播;網(wǎng)絡(luò)因此泛洪這些信源;
[0008]第二步:這些泛洪過程是通過單跳的鄰居執(zhí)行的;
[0009 ]第三步:執(zhí)行兩跳鄰居;依次類推第四步執(zhí)行三跳鄰居,第五步執(zhí)行四跳鄰居;
[0010]OGM以UDP方式重復(fù)廣播發(fā)送,因此泛洪直到每個節(jié)點收到至少一次,或直到它們由于通信鏈路丟包,或者直到TTL值已過期別丟失;
[0011]收到的來自鏈路本地鄰居的一個給出的OGM的數(shù)量,被用來評估單/多跳路由的質(zhì)量;
[0012]為了尋找最佳路由,協(xié)議計算收到的信源,并記錄鏈路本地鄰居轉(zhuǎn)發(fā)的0GM;運用這個OGM,協(xié)議維持一個本地鏈路表,它能夠區(qū)分新的信源和舊的轉(zhuǎn)發(fā)的信源,確保每個OGM只被記錄一次。
[0013]作為本發(fā)明進一步的方案:所述協(xié)議的每個數(shù)據(jù)包被封裝成一個單一的UDP數(shù)據(jù)包,數(shù)據(jù)包由一個OGM和O個或不少于I個HNA擴展信息組成;其中OGM大小為固定的12個8比特,OGM跟隨O個或不少于I個HNA擴展信息;每個HNA擴展信息緊跟前一個OGM消息后,必須分別進行處理;HNA擴展信息有一個固定大小的5個8比特字節(jié);
[0014]序列號為導(dǎo)向,接收OGM的序列號是每個OGM發(fā)送的密鑰信息;序列號都記錄在專用的滑動窗口,直到它們被認為是超出范圍;滑動窗口中的序列號是用來作為檢測到的鏈接和路徑度量的質(zhì)量的記錄;序列號的范圍為O到2~16-1;此序列號周期性的從O到2~16-1,當達到最大值時,再次從O開始。
[0015]作為本發(fā)明進一步的方案:所述協(xié)議的網(wǎng)關(guān)如下:每一個節(jié)點具有訪問網(wǎng)絡(luò)連接和路由的功能,能作為一個網(wǎng)關(guān);該網(wǎng)關(guān)發(fā)布傳輸位于OGM中的GWFlags標志;如果節(jié)點不準備接入到網(wǎng)絡(luò),則該節(jié)點設(shè)定GWFlags為O;否則,GWFlags包含所提供的帶寬編碼;提供節(jié)點應(yīng)該將此值設(shè)置為可用帶寬的最佳近似估計值;
[0016]GffFlags編碼用帶寬以Kbit/s表示,上行和下行帶寬的計算方法的依據(jù)如下:
[0017]下行帶寬=32*(S+2)*2~down kbit/s
[0018]上行帶寬=((up+l)* (下行帶寬))/8kbit/s
[0019]節(jié)點為了保證其確定功能,并以多種方式?jīng)Q定網(wǎng)關(guān);節(jié)點能為用戶設(shè)置他的靜態(tài)網(wǎng)關(guān),而不是僅僅是協(xié)議決定的自動獲取的最佳網(wǎng)關(guān)。
[0020]作為本發(fā)明進一步的方案:所述協(xié)議的協(xié)議路由表如下:如果從一個OGM通過HNA擴展信息從一個未知的源或到達一個未知網(wǎng)絡(luò)/主機,它會被添加到路由表中,選擇最佳本地鏈路的雙向鄰居作為網(wǎng)關(guān);如果目標是一臺主機,最佳雙向單跳鄰居為目標的主機路由將被添加;如果目標是一個網(wǎng)絡(luò),由HNA擴展信息發(fā)布包括OGM的消息,通過添加網(wǎng)絡(luò)路由中最佳的雙向單跳鄰居;如果雙向單跳鄰居不被選中作為本身的網(wǎng)關(guān),則單跳源節(jié)點不能作為最佳的它本身的網(wǎng)關(guān),必須通過另一個雙向單跳鄰居的主機進行路由選擇;如果到目的地的最佳的排序鄰居發(fā)生變化,路由表必須被更新;節(jié)點從已知的源節(jié)點收到一個單一的OGM或HNA擴展信息的間隔時間超過WIND0W_SIZE和PURGE_I1ME0UT的值的時候,該路線被認為是過期,將從路由表中被刪除;刪除的時間間隔對比滑動窗口的大小設(shè)置;
[0021 ]協(xié)議路由表維護時,每個節(jié)點通過把自己的MAC地址放入到自己的OGM中,然后通過周期性的廣播發(fā)送出去;其它節(jié)點接收到OGM后,會進行一系列的判斷,經(jīng)判斷后后,會丟棄數(shù)據(jù)包或者更新自己的源節(jié)點列表,然后進行重廣播操作;所述重廣播是指將廣播接收至Ij的OGM重新廣播出去;判斷過程如下:
[0022]第一步,判斷是否是標準廣播包頭大小;如果大小不符合規(guī)定,會被接收節(jié)點直接丟棄;
[0023]第二步,對接收節(jié)點來說,如果接收數(shù)據(jù)包的標識說明是廣播,但目的地址是單播的話,將被丟棄;
[0024]第三步,OGM的發(fā)送者地址是網(wǎng)絡(luò)中某一個MAC地址,如果該地址是一個廣播地址,將被丟棄;
[0025]第四步,接收節(jié)點接收到自己廣播出去的消息,將會被丟棄;這里的消息是指自己網(wǎng)卡發(fā)出去還未被轉(zhuǎn)發(fā)的消息;
[0026]第五步,廣播包的TTL值小于2的話,將會被丟棄;
[0027]經(jīng)過上述幾個步驟判斷后,接收節(jié)點會更新滑動窗口的元節(jié)點0GM,然后進行重新廣播準備,該準備階段也需要進行三個判斷;
[0028]第一步,檢查數(shù)據(jù)包是不是一個副本;是的話將丟棄;
[0029]第二步,檢查數(shù)據(jù)包序列號是不是陳舊的;是的話將丟棄;
[0030]第三步,檢查數(shù)據(jù)包是不是已經(jīng)被其它網(wǎng)關(guān)節(jié)點發(fā)送了;是的話將丟棄;
[0031]接著就會建立雙向鏈路進行重廣播數(shù)據(jù)包;節(jié)點會周期性的發(fā)送0GM,接收節(jié)點也會周期性的維護源節(jié)點列表的內(nèi)容,接收節(jié)點將要在規(guī)定時間內(nèi)接收到源節(jié)點的0GM,否則將會被判斷源節(jié)點失效,路由表中的信息將會被清除。
[0032]作為本發(fā)明進一步的方案:所述協(xié)議的傳輸質(zhì)量TQ如下:本地鏈路的傳輸質(zhì)量是通過從鄰居節(jié)點接收到的OGM的數(shù)量間接計算出來的;本地節(jié)點統(tǒng)計本地滑動窗口內(nèi)的所有接收到的0GM,這里用接收質(zhì)量RQ來代表這一數(shù)值;在這些接收到的OGM中,由自己發(fā)出而又被鄰居節(jié)點重新廣播的OGM,本地節(jié)點同樣維護了一個滑動窗口,統(tǒng)計接收到的此類OGM,用EQ來表示這一數(shù)值;本地鏈路的EQ是通過傳輸質(zhì)量TQ和接收質(zhì)量RQ的乘積得到的,公式為:
[0033]EQlocal = TQlocal*RQlocal
[0034]所以傳輸質(zhì)量TQ表示為:
[0035]TQlocal = EQlocal/RQlocal
[0036]在極端情況下,接收到的數(shù)據(jù)包數(shù)量過少,協(xié)議會判斷該鏈路失效,從而將鏈路傳輸質(zhì)量TQ值為O。
[0037]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0038]為了克服單跳網(wǎng)絡(luò)的不足,本發(fā)明通過對節(jié)點多跳傳輸過程中的數(shù)據(jù)包格式,路由表的建立和維護以及度量值TQ計算的設(shè)定,能夠?qū)崿F(xiàn)單跳或者多跳通信鏈路的方式主動維護無線多跳網(wǎng)絡(luò)中的所有存在的節(jié)點的信息。能夠確定無線多跳網(wǎng)絡(luò)中每個目標節(jié)點的一個單跳鄰居,用來作為與目標節(jié)點通信的最好的網(wǎng)關(guān)。能夠?qū)崿F(xiàn)對網(wǎng)絡(luò)實時維護最優(yōu)路徑和其余多跳路徑,并且能過做到對路由自動修復(fù)和重組。本發(fā)明能夠快速有效的確定每個目標節(jié)點的最佳下一跳,這種方法不需要找出或者計算出完整的路由。
【附圖說明】
[0039]圖1為本發(fā)明Marimesh協(xié)議OGM廣播示意圖。
[0040]圖2為本發(fā)明Marimesh協(xié)議路由更新示意圖。
[0041 ]圖3為本發(fā)明Marimesh協(xié)議TQ計算示意圖。
[0042]圖4為本發(fā)明Marimesh協(xié)議無線多跳網(wǎng)絡(luò)場景示意圖。
[0043]圖5為本發(fā)明Marimesh協(xié)議無線多跳網(wǎng)絡(luò)節(jié)點與鏈路集合示意圖。
[0044]圖6是Marimesh數(shù)據(jù)包格式圖。
[0045]圖7是OGM大小信息圖。
[0046]圖8是HNA擴展信息圖。
[0047]圖9是滑動窗口中的序列號列表圖。
[0048]圖10是GffFlags標志位圖。
[0049]圖11是本發(fā)明Marimesh協(xié)議接口通訊圖。
【具體實施方式】
[0050]下面將結(jié)合本發(fā)明實施例,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0051 ] 實施例1
[0052]本發(fā)明實施例中,請參閱圖11,本發(fā)明從硬件接口接收到OGM后發(fā)往路由模塊,經(jīng)過發(fā)送模塊轉(zhuǎn)發(fā)給別的節(jié)點;本節(jié)點要發(fā)數(shù)據(jù)出去:從上層應(yīng)用發(fā)到軟件接口經(jīng)過單播包模塊發(fā)送出去;若收到給自己的單播包從硬件接口到路由模塊通過軟件接口到上層應(yīng)用;不是給自己的單播包經(jīng)過路由模塊轉(zhuǎn)發(fā)出去。
[°°53] 一種分布式自適應(yīng)傳輸路由協(xié)議(即Marimesh協(xié)議),所述Marimesh具體執(zhí)行步驟如下:
[0054]第一步:每個節(jié)點定期廣播OGM,從而通知其鏈路本地鄰居它的存在。鏈路本地的鄰居接收發(fā)起人消息根據(jù)特定的協(xié)議轉(zhuǎn)發(fā)規(guī)則中繼轉(zhuǎn)播。網(wǎng)絡(luò)因此泛洪這些信源。
[0055]第二步:這些泛洪過程是通過單跳的鄰居執(zhí)行的。
[0056]第三步:執(zhí)行兩跳鄰居。依次類推第四步執(zhí)行三跳鄰居,第五步執(zhí)行四跳鄰居。
[0057]OGM以UDP方式重復(fù)廣播發(fā)送,因此泛洪直到每個節(jié)點收到至少一次,或直到它們由于通信鏈路丟包,或者直到TTL(生存時間)值已過期別丟失。在實踐過程中OGM包丟失是由于干擾,碰撞或者堵塞引起的。
[0058]收到的來自鏈路本地鄰居的一個給出的OGM源的數(shù)量,被用來評估單/多跳路由的質(zhì)量。
[0059]為了尋找最佳路由,協(xié)議計算收到的信源,并記錄鏈路本地鄰居轉(zhuǎn)發(fā)的信息。運用這個信息,協(xié)議維持一個本地鏈路表,它能夠區(qū)分新的信源和舊的轉(zhuǎn)發(fā)的信源,確保每個OGM只被記錄一次。
[0000]所述Marimesh數(shù)據(jù)包格式如圖6所示。每個數(shù)據(jù)包被封裝成一個單一的UDP數(shù)據(jù)包。數(shù)據(jù)包由一個OGM和O個或多個HNA擴展信息組成。其中OGM大小為固定的12個8比特,如圖7所示。
[0061]OGM可以跟隨O個或多個HNA擴展信息。每個擴展信息緊跟前一個OGM消息后,必須分別進行處理。HNA擴展信息有一個固定大小的5個8比特字節(jié),如圖8所示。
[0062]序列號為導(dǎo)向。事實上,接收OGM的序列號是每個OGM發(fā)送的密鑰信息。序列號都記錄在專用的滑動窗口,直到它們被認為是超出范圍。因此,這樣的滑動窗口總是包含最近接收到的序列號的組?;瑒哟翱谥械男蛄刑柺怯脕碜鳛闄z測到的鏈接和路徑度量的質(zhì)量的記錄。序列號的范圍不是無限空間,但被限制在范圍為O到2~16-1。由于空間有限,所有的算術(shù)運算必須進行2~16模。此序列號周期性的從O到2~16-1,當達到最大值時,再次從O開始。列表如圖9所示。
[OO63 ]所述Mar i me s h網(wǎng)關(guān)如下:每一個節(jié)點具有訪問網(wǎng)絡(luò)連接和路由的功能,可以作為一個網(wǎng)絡(luò)網(wǎng)關(guān)。該網(wǎng)關(guān)發(fā)布傳輸位于OGM包中的GWFlags標志。如果節(jié)點不準備接入到網(wǎng)絡(luò),它必須設(shè)定GWFlags為O。否則,GWFlags包含所提供的帶寬編碼。提供節(jié)點應(yīng)該將此值設(shè)置為可用帶寬的最佳近似估計值。GWFlags標志位如圖10所示。
[0064]GWFlags編碼大致可用帶寬以Kbit/s表示,上行和下行帶寬的計算方法的依據(jù)如下:下行帶寬= 32*(S+2)*2~down kbit/s
[0065]上行帶寬=((up+l)* (下行帶寬))/8kbit/s
[0066]節(jié)點能夠從幾個方面確定網(wǎng)關(guān),在網(wǎng)絡(luò)中的各個節(jié)點可以選擇決定使用的下載速度和連接質(zhì)量,或以此為依據(jù)作為自身網(wǎng)關(guān)或作為確定移動節(jié)點的一個最佳的下載速度網(wǎng)關(guān)合適的解決方案,但網(wǎng)關(guān)將會被頻繁的更換使用。
[0067]節(jié)點為了保證其確定功能,并以多種方式?jīng)Q定網(wǎng)絡(luò)網(wǎng)關(guān)。這對我們來說是相當有用的,例如,能夠選擇的下載速度以及網(wǎng)關(guān)的連接強度,查看條件組合的優(yōu)先級。例如移動節(jié)點可能是重要的,因為它可能優(yōu)先級比較高的,而重點不是它們的網(wǎng)關(guān)具有自己的網(wǎng)絡(luò)連接的速度上。另一方面允許靜態(tài)用戶接受一個比較差網(wǎng)關(guān),雖然本身是一個較好的網(wǎng)關(guān)。而在某些情況下,這兩種方法結(jié)合起來雖然動態(tài)選擇的互聯(lián)網(wǎng)網(wǎng)關(guān)總是由于開關(guān)從一個網(wǎng)關(guān)到另一個而與它帶來的可能性的所有連接被重置。因此,路由協(xié)議可以為用戶設(shè)置他的靜態(tài)網(wǎng)關(guān),而不是僅僅是協(xié)議決定的自動獲取的最佳網(wǎng)關(guān)。
[0068]所述Marimesh協(xié)議路由表如下:如果從一個OGM通過HNA從一個未知的源或到達一個未知網(wǎng)絡(luò)/主機,它會被添加到路由表中,選擇最佳本地鏈路的雙向鄰居作為網(wǎng)關(guān)。如果目標是一臺主機,最佳雙向單跳鄰居為目標的主機路由將被添加。如果目標是一個網(wǎng)絡(luò),由HNA信息發(fā)布包括OGM的消息,通過添加網(wǎng)絡(luò)路由中最佳的雙向單跳鄰居。雙向單跳鄰居可能不會被選中作為本身的網(wǎng)關(guān)。這種情況下單跳源節(jié)點不能作為最佳的它本身的網(wǎng)關(guān),必須通過另一個雙向單跳鄰居的主機進行路由選擇。如果到目的地的最佳的排序鄰居發(fā)生變化,路由表必須被更新。節(jié)點從已知的源節(jié)點收到一個單一的OGM或HNA的間隔時間較長,超過WIND0W_SIZE和PURGEJl MEOUT的值的時候,路線被認為是過期,將被從路由表中刪除。刪除的時間間隔應(yīng)該對比滑動窗口的大小設(shè)置。
[0069]路由表維護時,每個節(jié)點通過把自己的MAC地址放入到自己的OGM消息中,然后通過周期性的廣播發(fā)送出去。其它節(jié)點接收到OGM消息后,會進行一系列的判斷,經(jīng)判斷后后,會丟棄數(shù)據(jù)包或者更新自己的源節(jié)點列表,然后進行重廣播操作。所謂重廣播是指將廣播接收到的OGM消息重新廣播出去。判斷過程如下:
[0070]第一步,判斷是否是標準廣播包頭大小。如果大小不符合規(guī)定,會被接收節(jié)點直接丟棄。
[0071]第二步,對接收節(jié)點來說,如果接收數(shù)據(jù)包的標識說明是廣播,但目的地址是單播的話,將被丟棄。
[0072]第三步,OGM的發(fā)送者地址是網(wǎng)絡(luò)中某一個MAC地址,如果該地址是一個廣播地址,將被丟棄。
[0073]第四步,接收節(jié)點接收到自己廣播出去的消息,將會被丟棄。這里的消息是指自己網(wǎng)卡發(fā)出去還未被轉(zhuǎn)發(fā)的消息。
[0074]第五步,廣播包的TTL值小于2的話,將會被丟棄。
[0075]經(jīng)過這幾個步驟判斷后,接收節(jié)點會更新滑動窗口的元節(jié)點0GM,然后進行重新廣播準備,該準備階段也需要進行三個判斷。
[0076]第一步,檢查數(shù)據(jù)包是不是一個副本。
[0077]第二步,檢查數(shù)據(jù)包序列號是不是陳舊的。
[0078]第三步,檢查數(shù)據(jù)包是不是已經(jīng)被其它網(wǎng)關(guān)節(jié)點發(fā)送了。是的話將丟棄
[0079]接著就會建立雙向鏈路進行重廣播數(shù)據(jù)包。節(jié)點會周期性的發(fā)送OGM消息,接收節(jié)點也會周期性的維護源節(jié)點列表的內(nèi)容,接收節(jié)點將要在規(guī)定時間內(nèi)接收到源節(jié)點的0GM,否則將會被判斷源節(jié)點失效,路由表中的信息將會被清除。
[0080]所述Marimesh協(xié)議的傳輸質(zhì)量TQ如下:
[0081]本地鏈路的質(zhì)量是通過從鄰居節(jié)點接收到的OGM消息的數(shù)量間接計算出來的。本地節(jié)點統(tǒng)計本地滑動窗口內(nèi)的所有接收到的OGM消息,這里用RQ(Receive Quality)來代表這一數(shù)值。在這些接收到的OGM消息中,由自己發(fā)出而又被鄰居節(jié)點重新廣播的OGM消息,本地節(jié)點同樣維護了一個滑動窗口,統(tǒng)計接收到的此類OGM消息,用EQ(Echc) Quality)來表示這一數(shù)值。本地鏈路的EQ是通過傳輸質(zhì)量TQ和接收質(zhì)量RQ的乘積得到的,公式為:
[0082]EQlocal = TQlocal*RQlocal
[0083]所以傳輸質(zhì)量TQ就可以表示為:
[0084]TQlocal = EQlocal/RQlocal
[0085]在極端情況下,接收到的數(shù)據(jù)包數(shù)量過少,協(xié)議會判斷該鏈路失效,從而將鏈路傳輸質(zhì)量TQ值為O。
[0086]Marimesh協(xié)議路由是一種無線網(wǎng)絡(luò)實現(xiàn)多跳傳輸?shù)膮f(xié)議,無線網(wǎng)絡(luò)中,每個節(jié)點都會廣播OGM包,鄰居節(jié)點通過接受這些OGM包來知道該節(jié)點的存在。鄰居節(jié)點則是根據(jù)一定的協(xié)議規(guī)則來重廣播,通知網(wǎng)絡(luò)中的其它節(jié)點該節(jié)點的存在信息。每個節(jié)點只做一次被認為是最優(yōu)下一跳的重廣播OGM包。
[0087]如圖1所示,為Marimesh協(xié)議OGM包廣播示意圖,上電后每個節(jié)點自動周期性的廣播OGM包,鄰居收到后進行轉(zhuǎn)播。
[0088]在一般的無線網(wǎng)絡(luò)AP中,如果接入AP的終端設(shè)備過多,到達一定數(shù)量時,會導(dǎo)致網(wǎng)絡(luò)阻塞導(dǎo)致帶寬降低。而在該分布式自適應(yīng)傳輸路由協(xié)議的多跳網(wǎng)絡(luò)中將不會出現(xiàn)這種情況,該網(wǎng)絡(luò)的冗余機制可以避免網(wǎng)絡(luò)阻塞,而且具有強大的通信負載平衡功能,防止鏈路中斷。每個節(jié)點都會根據(jù)負載選擇相鄰的單跳網(wǎng)絡(luò)的最佳路徑,從而有效的避免因單跳網(wǎng)絡(luò)而產(chǎn)生的網(wǎng)絡(luò)阻塞和斷路問題。如圖1中所示,D節(jié)點要和A節(jié)點通信,根據(jù)得到傳輸質(zhì)量最好的那條路,選出最好的鄰居節(jié)點鏈路質(zhì)量能夠選擇信號最好的鄰居點(C或者F),比較然后逐次往上判斷。D節(jié)點通過B節(jié)點和C節(jié)點,接收到來自A節(jié)點的廣播包,判斷出,D節(jié)點的最優(yōu)下一跳是C節(jié)點,同樣C節(jié)點的最優(yōu)下一跳是B節(jié)點,以及B節(jié)點是與A通信的最優(yōu)下一跳。從而實現(xiàn)D節(jié)點和A節(jié)點的通信。
[0089]如圖2所示,為Marimesh協(xié)議路由更新示意圖,在網(wǎng)絡(luò)發(fā)生故障時,Marimesh協(xié)議可以由另一條路由實現(xiàn)數(shù)據(jù)傳輸,也就是說網(wǎng)絡(luò)的每個節(jié)點可以使用多路由,當不用時作為備用傳輸路徑。我們經(jīng)常使用的E-mail就是使用該多路由機制在用戶郵箱重組數(shù)據(jù)包信息。無線多跳網(wǎng)絡(luò)的每個節(jié)點到達目標節(jié)點可以由多條路由實現(xiàn)。當網(wǎng)絡(luò)正常傳輸數(shù)據(jù)時,一旦該鏈路發(fā)生故障,自動搜索獲取最佳鏈路為其傳輸路徑,并且無線網(wǎng)絡(luò)的協(xié)議支持移動節(jié)點路由,網(wǎng)絡(luò)的鏈路只要在輻射覆蓋范圍內(nèi),整個網(wǎng)絡(luò)將不受運動或者個別節(jié)點影響。圖2中節(jié)點A到節(jié)點D的通訊有三條路徑,分別是A-B-D,A-F-D,A-E-D等,初始最佳通訊路徑是A-B-D,當收到干擾B-D斷路時,該網(wǎng)絡(luò)會自動尋找其它最優(yōu)路徑A-F-D,保證數(shù)據(jù)傳輸通暢。
[0090]如圖3所示,為Marimesh協(xié)議TQ計算示意圖,在多跳網(wǎng)絡(luò)建立時,網(wǎng)絡(luò)中的各節(jié)點僅一個無線通信接口應(yīng)對無線通信中的干擾信號,是一種非對等鏈路,為了更準確的衡量整個鏈路質(zhì)量的優(yōu)劣,分布式自適應(yīng)傳輸路由協(xié)議將鏈路質(zhì)量分為三個部分:對于A點來說,如圖a所示,RQ是A收到B發(fā)送信息的可能性大小;如圖b所示,EQ是A發(fā)給B再轉(zhuǎn)回來收到的可能性大??;如圖c所示,TQ是A成功發(fā)送給B的可能性大小。節(jié)點發(fā)往某本地鄰居節(jié)點的OGM包的百分比,即公式是:TQ = EQ/RQ。
[0091]如圖4所示,為Marimesh協(xié)議無線多跳網(wǎng)絡(luò)場景示意圖。在無線多跳網(wǎng)絡(luò)中,有六個可以通信的節(jié)點A,B,C,D,E,F(xiàn)。在每個節(jié)點中均部署且運行了本發(fā)明的分布式自適應(yīng)傳輸路由協(xié)議,待協(xié)議運行穩(wěn)定后,可以形成圖4中的拓撲環(huán)境示意圖。那么,一個可能的消息發(fā)送過程可以描述為以下部分:
[0092](I)節(jié)點A準備向節(jié)點F發(fā)送消息。
[0093](2)節(jié)點A通過查閱路由信息表,它只會選擇所有一跳的路徑,即鏈路集合{(A,B),(A,C),(A,D)},這樣才能到達一跳鄰居集合相應(yīng)的集合如圖5(a)所示。
[0094](3)節(jié)點A根據(jù)統(tǒng)計數(shù)據(jù),計算出分別與節(jié)點B,C,D鏈路的TQ值。根據(jù)TQ值的不同,節(jié)點A使用TQ值最大的路徑。
[0095](4)假設(shè)鏈路(A,B)是最好的鏈路,節(jié)點A向節(jié)點B發(fā)送消息。
[0096](5)因為節(jié)點B并不是目標節(jié)點F,所以要重復(fù)算法的步驟一到四。
[0097](6)將圖G縮減成圖S。節(jié)點B只考慮一跳鏈路集合{(B,C),(B,E)),這樣到達鄰居節(jié)點集合相應(yīng)的集合如圖5 (b)所示。
[0098](7)節(jié)點B根據(jù)鏈路(B,C)和(B,E)的TQ值,來選擇TQ值最大的路徑。
[0099 ] (8)假設(shè)鏈路(B,E)是最好的鏈路,節(jié)點響節(jié)點E發(fā)送消息。
[0100](9)因為節(jié)點E不是目標節(jié)點F,所以要重復(fù)算法的步驟一到四。
[0101]將圖S縮減成縮減圖S,如圖5(C)所示。節(jié)點E為了到達鄰居節(jié)點集{C,F(xiàn)},只會考慮鏈路集合{(E,F(xiàn)),(E,C)}。而節(jié)點F是目標節(jié)點,所以只有一條鏈路可以達到節(jié)點F,所以鏈路(E,F(xiàn))是最佳路徑。至此,算法結(jié)束。
[0102]對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實施例的細節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。
[0103]此外,應(yīng)當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當將說明書作為一個整體,各實施例中的技術(shù)方案也可以經(jīng)適當組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。
【主權(quán)項】
1.一種分布式自適應(yīng)傳輸路由協(xié)議,其特征在于,它的具體執(zhí)行步驟如下: 第一步:每個節(jié)點定期廣播OGM,從而通知其鏈路本地鄰居該節(jié)點的存在;鏈路本地鄰居的接收發(fā)起人消息根據(jù)特定的協(xié)議轉(zhuǎn)發(fā)規(guī)則中繼轉(zhuǎn)播;網(wǎng)絡(luò)因此泛洪這些信源; 第二步:上述泛洪過程是通過單跳的鄰居執(zhí)行的; 第三步:執(zhí)行兩跳鄰居; 依次類推第四步執(zhí)行三跳鄰居,第五步執(zhí)行四跳鄰居; OGM以UDP方式重復(fù)廣播發(fā)送,因此泛洪直到每個節(jié)點收到至少一次,或直到它們由于通信鏈路丟包,或者直到TTL值已過期別丟失; 收到的來自鏈路本地鄰居的一個給出的OGM的數(shù)量,被用來評估單/多跳路由的質(zhì)量; 為了尋找最佳路由,協(xié)議計算收到的信源,并記錄鏈路本地鄰居轉(zhuǎn)發(fā)的0GM;運用這個OGM,協(xié)議維持一個本地鏈路表,它能夠區(qū)分新的信源和舊的轉(zhuǎn)發(fā)的信源,確保每個OGM只被記錄一次。2.根據(jù)權(quán)利要求1所述的分布式自適應(yīng)傳輸路由協(xié)議,其特征在于,所述協(xié)議的每個數(shù)據(jù)包被封裝成一個單一的UDP數(shù)據(jù)包,數(shù)據(jù)包由一個OGM和O個或不少于I個HNA擴展信息組成;其中OGM大小為固定的12個8比特,OGM跟隨O個或不少于I個HNA擴展信息;每個HNA擴展信息緊跟前一個OGM消息后,必須分別進行處理;HNA擴展信息有一個固定大小的5個8比特字Tl ; 序列號為導(dǎo)向,接收OGM的序列號是每個OGM發(fā)送的密鑰信息;序列號都記錄在專用的滑動窗口,直到它們被認為是超出范圍;滑動窗口中的序列號是用來作為檢測到的鏈接和路徑度量的質(zhì)量的記錄;序列號的范圍為O到2~16-1;此序列號周期性的從O到2~16-1,當達到最大值時,再次從O開始。3.根據(jù)權(quán)利要求1所述的分布式自適應(yīng)傳輸路由協(xié)議,其特征在于,所述協(xié)議的網(wǎng)關(guān)如下:每一個節(jié)點具有訪冋網(wǎng)絡(luò)連接和路由的功能,能作為一個網(wǎng)關(guān);該網(wǎng)關(guān)發(fā)布傳輸位于O G M中的G W FI a g s標志;如果節(jié)點不準備接入到網(wǎng)絡(luò),則該節(jié)點設(shè)定G W FI a g s為O ;否則,GWFlags包含所提供的帶寬編碼;提供節(jié)點應(yīng)該將此值設(shè)置為可用帶寬的最佳近似估計值; GWFlags編碼用帶寬以Kbit/s表示,上行和下行帶寬的計算方法的依據(jù)如下: 下行帶寬= 32*(S+2)*2~down kbit/s 上行帶寬= ((up+l)* (下行帶寬))/8kbit/s 節(jié)點為了保證其確定功能,并以多種方式?jīng)Q定網(wǎng)關(guān);節(jié)點能為用戶設(shè)置他的靜態(tài)網(wǎng)關(guān),而不是僅僅是協(xié)議決定的自動獲取的最佳網(wǎng)關(guān)。4.根據(jù)權(quán)利要求1所述的分布式自適應(yīng)傳輸路由協(xié)議,其特征在于,所述協(xié)議的路由表如下:如果從一個OGM通過HNA擴展信息從一個未知的源或到達一個未知網(wǎng)絡(luò)/主機,它會被添加到路由表中,選擇最佳本地鏈路的雙向鄰居作為網(wǎng)關(guān);如果目標是一臺主機,最佳雙向單跳鄰居為目標的主機路由將被添加;如果目標是一個網(wǎng)絡(luò),由HNA擴展信息發(fā)布包括OGM的消息,通過添加網(wǎng)絡(luò)路由中最佳的雙向單跳鄰居;如果雙向單跳鄰居不被選中作為本身的網(wǎng)關(guān),則單跳源節(jié)點不能作為最佳的它本身的網(wǎng)關(guān),必須通過另一個雙向單跳鄰居的主機進行路由選擇;如果到目的地的最佳的排序鄰居發(fā)生變化,路由表必須被更新;節(jié)點從已知的源節(jié)點收到一個單一的OGM或HNA擴展信息的間隔時間超過WI ND0W_S IZE和roRGE_TIMEOUT的值的時候,該路線被認為是過期,將從路由表中被刪除;刪除的時間間隔對比滑動窗口的大小設(shè)置; 協(xié)議路由表維護時,每個節(jié)點通過把自己的MAC地址放入到自己的OGM中,然后通過周期性的廣播發(fā)送出去;其它節(jié)點接收到OGM后,會進行一系列的判斷,經(jīng)判斷后后,會丟棄數(shù)據(jù)包或者更新自己的源節(jié)點列表,然后進行重廣播操作;所述重廣播是指將廣播接收到的OGM重新廣播出去;判斷過程如下: 第一步,判斷是否是標準廣播包頭大??;如果大小不符合規(guī)定,會被接收節(jié)點直接丟棄; 第二步,對接收節(jié)點來說,如果接收數(shù)據(jù)包的標識說明是廣播,但目的地址是單播的話,將被丟棄; 第三步,OGM的發(fā)送者地址是網(wǎng)絡(luò)中某一個MAC地址,如果該地址是一個廣播地址,將被丟棄; 第四步,接收節(jié)點接收到自己廣播出去的消息,將會被丟棄;這里的消息是指自己網(wǎng)卡發(fā)出去還未被轉(zhuǎn)發(fā)的消息; 第五步,廣播包的TTL值小于2的話,將會被丟棄; 經(jīng)過上述幾個步驟判斷后,接收節(jié)點會更新滑動窗口的元節(jié)點0GM,然后進行重新廣播準備,該準備階段也需要進行三個判斷; 第一步,檢查數(shù)據(jù)包是不是一個副本;是的話將丟棄; 第二步,檢查數(shù)據(jù)包序列號是不是陳舊的;是的話將丟棄; 第三步,檢查數(shù)據(jù)包是不是已經(jīng)被其它網(wǎng)關(guān)節(jié)點發(fā)送了;是的話將丟棄; 接著就會建立雙向鏈路進行重廣播數(shù)據(jù)包;節(jié)點會周期性的發(fā)送0GM,接收節(jié)點也會周期性的維護源節(jié)點列表的內(nèi)容,接收節(jié)點將要在規(guī)定時間內(nèi)接收到源節(jié)點的OGM,否則將會被判斷源節(jié)點失效,路由表中的信息將會被清除。5.根據(jù)權(quán)利要求1所述的分布式自適應(yīng)傳輸路由協(xié)議,其特征在于,所述協(xié)議的傳輸質(zhì)量TQ如下:本地鏈路的傳輸質(zhì)量是通過從鄰居節(jié)點接收到的OGM的數(shù)量間接計算出來的;本地節(jié)點統(tǒng)計本地滑動窗口內(nèi)的所有接收到的0GM,這里用接收質(zhì)量RQ來代表這一數(shù)值;在這些接收到的OGM中,由自己發(fā)出而又被鄰居節(jié)點重新廣播的OGM,本地節(jié)點同樣維護了一個滑動窗口,統(tǒng)計接收到的此類OGM,用EQ來表示這一數(shù)值;本地鏈路的EQ是通過傳輸質(zhì)量TQ和接收質(zhì)量RQ的乘積得到的,公式為:EQlocal 一 TQlocal^RQlocal 所以傳輸質(zhì)量TQ表不為:TQlocal 一 EQlocal/RQlocal 在極端情況下,接收到的數(shù)據(jù)包數(shù)量過少,協(xié)議會判斷該鏈路失效,從而將鏈路傳輸質(zhì)量TQ值為O。
【文檔編號】H04L29/06GK105847278SQ201610289758
【公開日】2016年8月10日
【申請日】2016年5月3日
【發(fā)明人】毛續(xù)飛, 韓建康, 鮑洪
【申請人】杭州寒舍科技有限公司