本公開屬于機(jī)會網(wǎng)絡(luò)的應(yīng)用領(lǐng)域,特別涉及一種基于相遇頻率的機(jī)會網(wǎng)絡(luò)路由方法。
技術(shù)背景
如何充分利用設(shè)備的通信功能,在不需要進(jìn)行預(yù)先部署和建設(shè)基礎(chǔ)設(shè)施的情況下,快速完成這些不同設(shè)備之間的自動組網(wǎng),達(dá)到網(wǎng)內(nèi)信息傳遞以及信息共享的目的,成為當(dāng)前無線自組織網(wǎng)絡(luò)領(lǐng)域內(nèi)的熱點(diǎn)問題。另外,在救災(zāi)區(qū)域等場合,經(jīng)常會遇到無可靠的預(yù)先部署的基礎(chǔ)通訊設(shè)施的情況,如何在這些場合下進(jìn)行有效地通信是目前急需解決的一個問題。為了有效地解決上述問題,研究人員結(jié)合dtn(delay-tolerantnetwork)網(wǎng)絡(luò)和manet(mobileadhocnetwork)的特點(diǎn),提出機(jī)會網(wǎng)絡(luò)(opportunisticnetwork)的概念。
機(jī)會網(wǎng)絡(luò)是一種在源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間不需要存在完整的路徑,利用節(jié)點(diǎn)移動帶來的相遇機(jī)會,以“存儲-攜帶-轉(zhuǎn)發(fā)”模式,在網(wǎng)絡(luò)局部連通條件下,進(jìn)行數(shù)據(jù)傳輸?shù)淖越M織網(wǎng)絡(luò)。機(jī)會網(wǎng)絡(luò)的目標(biāo)是解決實(shí)際自組織網(wǎng)絡(luò)中由于網(wǎng)絡(luò)無法保持長時間連通的情況下的數(shù)據(jù)通信問題,作為一種新型網(wǎng)絡(luò),機(jī)會網(wǎng)絡(luò)能夠在無線鏈路斷開和網(wǎng)絡(luò)分裂情況下完成通信任務(wù),實(shí)現(xiàn)消息的逐跳轉(zhuǎn)發(fā),并最終傳送到目的節(jié)點(diǎn)。
機(jī)會網(wǎng)絡(luò)中的相遇是指節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸?shù)那疤?,這樣的前提條件由于節(jié)點(diǎn)的移動而存在不確定性。某一時刻,在節(jié)點(diǎn)之間的距離小于彼此的通信范圍(即相遇)時發(fā)生通信;下一時刻隨著節(jié)點(diǎn)的移動,節(jié)點(diǎn)之間的距離可能大于彼此的通信范圍(沒有相遇),此時通信將中斷。由于機(jī)會網(wǎng)絡(luò)在數(shù)據(jù)的傳輸過程中,不需要存在穩(wěn)定的一條或者多條源端到目的端的路徑,因此具有更強(qiáng)的環(huán)境適應(yīng)性。
在不同的機(jī)會網(wǎng)絡(luò)路由方法中,根據(jù)消息的副本數(shù),可以分為單副本路由方法和多副本路由方法。一般情況下,單副本路由方法具有開銷率低、網(wǎng)絡(luò)耗能少的優(yōu)點(diǎn),但投遞率較低并且時延較大,多副本路由方法往往能保證較高的投遞率和較小的時延,但通常網(wǎng)絡(luò)開銷率和耗能較大。但我們發(fā)現(xiàn),在網(wǎng)絡(luò)節(jié)點(diǎn)能量有限和被傳輸?shù)南⒌纳嫫?timetolive,以下簡稱ttl)有限的條件下,一些單副本路由方法的優(yōu)勢并不能得以發(fā)揮,往往還會因為網(wǎng)絡(luò)中的節(jié)點(diǎn)盲目地轉(zhuǎn)發(fā)數(shù)據(jù)包給鄰居節(jié)點(diǎn)造成投遞率低的情況。
技術(shù)實(shí)現(xiàn)要素:
基于此,本公開揭示一種基于相遇頻率的機(jī)會網(wǎng)絡(luò)路由方法,所述方法包括以下步驟:
s100、轉(zhuǎn)發(fā)數(shù)據(jù)包:
s1001、判斷持有數(shù)據(jù)包的節(jié)點(diǎn)vs的鄰居節(jié)點(diǎn)中是否包含數(shù)據(jù)包的目標(biāo)節(jié)點(diǎn)vd,若是,則將節(jié)點(diǎn)vs的數(shù)據(jù)包直接轉(zhuǎn)發(fā)給節(jié)點(diǎn)vd,跳轉(zhuǎn)至步驟s300;否則進(jìn)行下一步;
s1002、節(jié)點(diǎn)vs選擇其鄰居節(jié)點(diǎn)中與目標(biāo)節(jié)點(diǎn)vd的間接相遇頻率最大的節(jié)點(diǎn)作為中繼節(jié)點(diǎn),設(shè)為vt,其間接相遇頻率為
s200、中繼節(jié)點(diǎn)vt接收和轉(zhuǎn)發(fā)數(shù)據(jù)包:
s2001、中繼節(jié)點(diǎn)vt收到持有數(shù)據(jù)包的鄰居節(jié)點(diǎn)vs發(fā)來的數(shù)據(jù)包的傳輸請求時,檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,節(jié)點(diǎn)vt接收和存儲該數(shù)據(jù)包,并跳轉(zhuǎn)至步驟s100,節(jié)點(diǎn)vt充當(dāng)新的持有數(shù)據(jù)包的節(jié)點(diǎn)vs;否則進(jìn)行下一步;
s2002、中繼節(jié)點(diǎn)vt比較其緩存中所有數(shù)據(jù)包的ttl與來自鄰居節(jié)點(diǎn)vs的數(shù)據(jù)包的t't'l,若中繼節(jié)點(diǎn)vt中緩存的所有數(shù)據(jù)包的ttl都大于來自vs的數(shù)據(jù)包的ttl,節(jié)點(diǎn)vt則不接收來自vs的數(shù)據(jù)包,跳轉(zhuǎn)至步驟s100;否則進(jìn)行下一步;
s2003、中繼節(jié)點(diǎn)vt刪除其緩存中ttl最小的數(shù)據(jù)包,并檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,中繼節(jié)點(diǎn)vt接收和存儲該數(shù)據(jù)包,并跳轉(zhuǎn)至步驟s100,節(jié)點(diǎn)vt充當(dāng)新的持有數(shù)據(jù)包的節(jié)點(diǎn)vs;否則,中繼節(jié)點(diǎn)vt不接收來自vs的數(shù)據(jù)包,vs等待與新的鄰居節(jié)點(diǎn)相遇后,跳轉(zhuǎn)至步驟s100;
s300、目標(biāo)節(jié)點(diǎn)vd接收數(shù)據(jù)包:
s3001、目標(biāo)節(jié)點(diǎn)vd收到持有數(shù)據(jù)包的鄰居節(jié)點(diǎn)vs發(fā)來的數(shù)據(jù)包的傳輸請求時,檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,目標(biāo)節(jié)點(diǎn)vd接收并存儲該數(shù)據(jù)包;否則進(jìn)行下一步;
s3002、目標(biāo)節(jié)點(diǎn)vd刪除其緩存中ttl中最小的數(shù)據(jù)包,并檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,目標(biāo)節(jié)點(diǎn)vd接收并存儲該數(shù)據(jù)包;否則不接收來自鄰居節(jié)點(diǎn)vs的數(shù)據(jù)包,節(jié)點(diǎn)vs等待與新的鄰居節(jié)點(diǎn)相遇后,跳轉(zhuǎn)至步驟s100。
本公開具有以下技術(shù)效果
1、相遇頻率的計算過程考慮了節(jié)點(diǎn)之間的傳遞性,增加了路由過程中下一跳節(jié)點(diǎn)選擇的準(zhǔn)確率,從而有利于選擇在全局角度上更優(yōu)的中繼節(jié)點(diǎn),增加了投遞率并減少數(shù)據(jù)傳輸時延。
2、相遇頻率計算算法的時間復(fù)雜度低,為o(n),其中n是網(wǎng)絡(luò)中節(jié)點(diǎn)的個數(shù)。
附圖說明
圖1是公開一個實(shí)施例中一種基于相遇頻率的機(jī)會網(wǎng)絡(luò)路由方法的流程圖;
圖2是本公開一個實(shí)施例中的相遇頻率計算方法流程圖;
圖3是本公開一個實(shí)施例中網(wǎng)絡(luò)初始化中的計算任意兩節(jié)點(diǎn)的間接相遇頻率的實(shí)例圖;
圖4是本公開一個實(shí)施例中網(wǎng)絡(luò)初始化中的計算任意兩節(jié)點(diǎn)的間接相遇頻率的實(shí)例圖;
圖5是本公開一個實(shí)施例中網(wǎng)絡(luò)初始化中的計算任意兩節(jié)點(diǎn)的間接相遇頻率的實(shí)例圖;
圖6是本公開一個實(shí)施例中網(wǎng)絡(luò)初始化中的計算任意兩節(jié)點(diǎn)的間接相遇頻率的實(shí)例圖;
圖7是本公開一個實(shí)施例中路由決策的實(shí)例圖;
圖8是本公開一個實(shí)施例中路由決策的實(shí)例圖;
圖9是本公開一個實(shí)施例中路由決策的實(shí)例圖;
圖10是本公開一個實(shí)施例中路由決策的實(shí)例圖;
圖11是本公開一個實(shí)施例中路由決策的實(shí)例圖。
具體實(shí)施方式
下面結(jié)合圖1到圖11和具體的實(shí)施例對本公開進(jìn)行具體的說明;
在一個實(shí)施例中,如圖1所示:本公開揭示一種基于相遇頻率的機(jī)會網(wǎng)絡(luò)路由方法,所述方法包括以下步驟:
s100、轉(zhuǎn)發(fā)數(shù)據(jù)包:
s1001、判斷持有數(shù)據(jù)包的節(jié)點(diǎn)vs的鄰居節(jié)點(diǎn)中是否包含數(shù)據(jù)包的目標(biāo)節(jié)點(diǎn)vd,若是,則將節(jié)點(diǎn)vs的數(shù)據(jù)包直接轉(zhuǎn)發(fā)給節(jié)點(diǎn)vd,跳轉(zhuǎn)至步驟s300;否則進(jìn)行下一步;
s1002、節(jié)點(diǎn)vs選擇其鄰居節(jié)點(diǎn)中與目標(biāo)節(jié)點(diǎn)vd的間接相遇頻率最大的節(jié)點(diǎn)作為中繼節(jié)點(diǎn),設(shè)為vt,其間接相遇頻率為
s200、中繼節(jié)點(diǎn)vt接收和轉(zhuǎn)發(fā)數(shù)據(jù)包:
s2001、中繼節(jié)點(diǎn)vt收到持有數(shù)據(jù)包的鄰居節(jié)點(diǎn)vs發(fā)來的數(shù)據(jù)包的傳輸請求時,檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,中繼節(jié)點(diǎn)vt接收和存儲該數(shù)據(jù)包,并跳轉(zhuǎn)至步驟s100,節(jié)點(diǎn)vt充當(dāng)新的持有數(shù)據(jù)包的節(jié)點(diǎn)vs;否則進(jìn)行下一步;
s2002、中繼節(jié)點(diǎn)vt比較其緩存中所有數(shù)據(jù)包的ttl與來自鄰居節(jié)點(diǎn)vs的數(shù)據(jù)包的t't'l,若中繼節(jié)點(diǎn)vt中緩存的所有數(shù)據(jù)包的ttl都大于來自vs的數(shù)據(jù)包的ttl,節(jié)點(diǎn)vt則不接收來自節(jié)點(diǎn)vs的數(shù)據(jù)包,跳轉(zhuǎn)至步驟s100;否則進(jìn)行下一步;
s2003、中繼節(jié)點(diǎn)vt刪除其緩存中ttl最小的數(shù)據(jù)包,并檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,中繼節(jié)點(diǎn)vt接收和存儲該數(shù)據(jù)包,并跳轉(zhuǎn)至步驟s100,節(jié)點(diǎn)vt充當(dāng)新的持有數(shù)據(jù)包的節(jié)點(diǎn)vs;否則,中繼節(jié)點(diǎn)vt不接收來自節(jié)點(diǎn)vs的數(shù)據(jù)包,節(jié)點(diǎn)vs等待與新的鄰居節(jié)點(diǎn)相遇后,跳轉(zhuǎn)至步驟s100;
s300、目標(biāo)節(jié)點(diǎn)vd接收數(shù)據(jù)包:
s3001、目標(biāo)節(jié)點(diǎn)vd收到持有數(shù)據(jù)包的鄰居節(jié)點(diǎn)vs發(fā)來的數(shù)據(jù)包的傳輸請求時,檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,目標(biāo)節(jié)點(diǎn)vd接收并存儲該數(shù)據(jù)包;否則進(jìn)行下一步;
s3002、目標(biāo)節(jié)點(diǎn)vd刪除其緩存中ttl中最小的數(shù)據(jù)包,并檢查其剩余緩存空間是否大于數(shù)據(jù)包的大小,若是,目標(biāo)節(jié)點(diǎn)vd接收并存儲該數(shù)據(jù)包;否則不接收來自鄰居節(jié)點(diǎn)vs的數(shù)據(jù)包,節(jié)點(diǎn)vs等待與新的鄰居節(jié)點(diǎn)相遇后,跳轉(zhuǎn)至步驟s100。
在一個實(shí)施例中,步驟s2001中所述數(shù)據(jù)包的傳輸請求包括數(shù)據(jù)包的大小和ttl信息。
在一個實(shí)施例中,在步驟s100之前還包括機(jī)會網(wǎng)絡(luò)的初始化,所述初始化具體為:
初始化機(jī)會網(wǎng)絡(luò)為g(v,e,w),其中v代表節(jié)點(diǎn)的集合,每個v∈v代表一個節(jié)點(diǎn),v的元素個數(shù)為n,表示網(wǎng)絡(luò)中移動節(jié)點(diǎn)個數(shù),eij∈e是節(jié)點(diǎn)vi和節(jié)點(diǎn)vj的連接邊,機(jī)會網(wǎng)絡(luò)中任意一對節(jié)點(diǎn)vi和節(jié)點(diǎn)vj之間的相遇時間間隔服從參數(shù)為
在本實(shí)施例中,在機(jī)會網(wǎng)絡(luò)中,每個節(jié)點(diǎn)都是移動的,每個節(jié)點(diǎn)的鄰居節(jié)點(diǎn)隨時間不斷變化,在相遇過程中每個節(jié)點(diǎn)保存其與網(wǎng)絡(luò)中所有其他節(jié)點(diǎn)之間的歷史相遇時間間隔。經(jīng)過統(tǒng)計求取平均值,每個節(jié)點(diǎn)vi可以計算其與任意一個節(jié)點(diǎn)vj的平均相遇間隔時間,該相遇間隔時間服從指數(shù)分布,其參數(shù)λij為間隔的平均時間的倒數(shù)。
機(jī)會網(wǎng)絡(luò)中,每個節(jié)點(diǎn)周期性的廣播其存儲的與其他節(jié)點(diǎn)相遇的參數(shù)λij,并維護(hù)一個n*n的節(jié)點(diǎn)相遇時間間隔矩陣m,其中
在一個實(shí)施例中,如圖2所示:在步驟s100之前,初始化機(jī)會網(wǎng)絡(luò)之后還包括計算機(jī)會網(wǎng)絡(luò)中任意一個節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的間接相遇頻率,具體包括以下步驟:
s001.將節(jié)點(diǎn)集合v分成兩組,s為已求出與目標(biāo)節(jié)點(diǎn)vd的間接相遇頻率的節(jié)點(diǎn)構(gòu)成的集合,t為尚未求出與目標(biāo)節(jié)點(diǎn)vd的間接相遇頻率的節(jié)點(diǎn)的集合,s={vd},t={v|v∈v,v≠vd};
s002、從t中選取與s中的節(jié)點(diǎn)有連接邊的所有節(jié)點(diǎn),設(shè)為s’,根據(jù)s’中的節(jié)點(diǎn)數(shù)量,分為以下三種情況:
c1:|s’|=0,結(jié)束;
c2:|s’|=1,則集合s’中只包含1個節(jié)點(diǎn)vp,計算節(jié)點(diǎn)vp與節(jié)點(diǎn)vd的相遇頻率;
c3:|s’|>1,計算s’中所有節(jié)點(diǎn)與節(jié)點(diǎn)vd的相遇頻率;
s003、將集合s’中的所有元素并入集合s中并清空集合s',從集合t中刪除所有包含于集合s’中的節(jié)點(diǎn);若集合s中含有持有數(shù)據(jù)包的節(jié)點(diǎn)vs,則結(jié)束;否則跳轉(zhuǎn)至步驟s002。
在一個實(shí)施例中,所述情況c2中計算節(jié)點(diǎn)vp與節(jié)點(diǎn)vd的相遇頻率具體為:
設(shè)與節(jié)點(diǎn)vp關(guān)聯(lián)的并包含于s的節(jié)點(diǎn)構(gòu)成集合
v'={vli|vli∈s,i=1,2,...,k},其中k為與vp節(jié)點(diǎn)相關(guān)聯(lián)的鄰接節(jié)點(diǎn)的個數(shù),
在一個實(shí)施例中,所述情況c3具體包括以下步驟:
s0021、設(shè)s’中的節(jié)點(diǎn)為vph,其中h=1,2,...,|s'|,若s中只包含一個節(jié)點(diǎn)vd,則vph與vd的間接相遇頻率為
s0022、選取集合s’中相互有關(guān)聯(lián)邊的節(jié)點(diǎn)構(gòu)成集合v″,并從集合s’中刪除這些節(jié)點(diǎn);若v″為空,則跳轉(zhuǎn)至步驟s003;否則跳轉(zhuǎn)至步驟s0023;
s0023、在集合v”中選取與vd具有最大間接相遇頻率的節(jié)點(diǎn),設(shè)為vc,其與節(jié)點(diǎn)vd的間接相遇頻率設(shè)為
上式中的λ'rm,d為節(jié)點(diǎn)vrm與vd的相遇頻率;
s0024、從集合v”中刪除節(jié)點(diǎn)vc,并加入到s中,從t中刪除vc,若集合v”不為空,則轉(zhuǎn)入步驟s0023,否則跳轉(zhuǎn)至步驟s003。
在一個實(shí)施例中,計算網(wǎng)絡(luò)中任意兩個節(jié)點(diǎn)之間的間接相遇頻率。
一種基于相遇頻率的機(jī)會網(wǎng)絡(luò)路由方法是利用節(jié)點(diǎn)間的相遇頻率來進(jìn)行轉(zhuǎn)發(fā)決策的,計算任意一個節(jié)點(diǎn)vs到特定節(jié)點(diǎn)vd的相遇頻率
201.把節(jié)點(diǎn)集合v分成兩組,s為已求出與節(jié)點(diǎn)vd的相遇頻率的節(jié)點(diǎn)構(gòu)成的集合,t為尚未求出與節(jié)點(diǎn)vd的相遇頻率的節(jié)點(diǎn)的集合。因此,s={vd},t={v|v∈v,v≠vd}。
202.從t中選取與s中的節(jié)點(diǎn)有關(guān)聯(lián)邊的所有節(jié)點(diǎn),設(shè)為s’。根據(jù)s’中的節(jié)點(diǎn)數(shù)量,分為以下三種情況:
情況1:|s’|=0,則結(jié)束。
情況2:|s’|=1,則集合s’中只包含1個節(jié)點(diǎn),不妨設(shè)該節(jié)點(diǎn)為vp,計算節(jié)點(diǎn)vp與節(jié)點(diǎn)vd的相遇頻率。計算過程如下,設(shè)與vp關(guān)聯(lián)的并包含于s的節(jié)點(diǎn)(不包含vd)構(gòu)成集合v'={vli|vli∈s,i=1,2,...,k},其中k為與vp節(jié)點(diǎn)相關(guān)聯(lián)的鄰接節(jié)點(diǎn)的個數(shù),若v’為空,則vp與vd的間接相遇頻率為
情況3:|s’|>1,則集合s’中的節(jié)點(diǎn)數(shù)目大于1個,進(jìn)一步分為以下步驟:
步驟2301.對s’中的所有節(jié)點(diǎn)vph∈s',其中h=1,2,...,|s'|,若s中只包含一個節(jié)點(diǎn)vd,則vph與vd的間接相遇頻率為
步驟2302.選取集合s’中相互有關(guān)聯(lián)邊的節(jié)點(diǎn)構(gòu)成集合v″,并從集合s’中刪除這些節(jié)點(diǎn)。在集合v”中選取與vd具有最大間接相遇頻率的節(jié)點(diǎn),設(shè)為vc,其與節(jié)點(diǎn)vd的間接相遇頻率設(shè)為
其中:等號右側(cè)的
203.將集合s’中的所有元素并入集合s中并清空集合s',從集合t中刪除所有包含于集合s’中的節(jié)點(diǎn)。若集合s中含有節(jié)點(diǎn)vs,則結(jié)束;否則跳轉(zhuǎn)至步驟202。
計算后產(chǎn)生的集合s中包含了攜帶數(shù)據(jù)包的節(jié)點(diǎn)vs及其鄰居節(jié)點(diǎn),并且每個節(jié)點(diǎn)的緩存中存儲了與目標(biāo)節(jié)點(diǎn)vd的間接相遇頻率值。
網(wǎng)絡(luò)初始化后可以得知每個節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)(設(shè)為vd)的間接相遇頻率,這些相遇頻率為之后路由過程的轉(zhuǎn)發(fā)決策提供依據(jù)。
下面結(jié)合附圖對技術(shù)方案中策略的實(shí)施做進(jìn)一步的詳細(xì)描述:
如圖3,在某一時刻的機(jī)會網(wǎng)絡(luò)拓?fù)?,攜帶數(shù)據(jù)包d(大小為500k,ttl為5min)的節(jié)點(diǎn)為v1,節(jié)點(diǎn)為v10為其目標(biāo)節(jié)點(diǎn),圖中邊上的值表示邊所連接的兩個節(jié)點(diǎn)vi和vj的直接相遇頻率即λi,j,例如節(jié)點(diǎn)v1和v2的直接相遇頻率為λ1,2。
根據(jù)上述網(wǎng)絡(luò)初始化方法計算圖中任意兩個節(jié)點(diǎn)的相遇頻率的過程如下:
初始化。把節(jié)點(diǎn)集合v分成兩組,s:已求出與節(jié)點(diǎn)vj的相遇頻率的節(jié)點(diǎn)的集合(初始時只含有節(jié)點(diǎn)vj),t:尚未求出與節(jié)點(diǎn)vj的相遇頻率的節(jié)點(diǎn)的集合。因此,初始時,s={v10},t={vi∈v,i=1,2,3,4,5,6,8,9,11}。
如圖4,從t中選取與s中的節(jié)點(diǎn)有關(guān)聯(lián)邊的所有節(jié)點(diǎn)(v8,v9和v11),設(shè)為s’。因為
|s’|>1,所以初步的根據(jù)算法的步驟202中的情況3可得:
并把節(jié)點(diǎn)v8與v9以及v11加入s,記錄更新
由公式(1)可得
再由公式(2)可得
把節(jié)點(diǎn)v5和v6加入s中,記錄更新
把節(jié)點(diǎn)v2,v4和v3加入s中,記錄更新
把節(jié)點(diǎn)v1加入s中,記錄更新
在一個實(shí)施例中,如圖8,在某一時刻節(jié)點(diǎn)v1與v10相遇。假設(shè)節(jié)點(diǎn)v10的剩余緩存空間為2m。
具體路由過程如下:
1.當(dāng)攜帶數(shù)據(jù)包d的節(jié)點(diǎn)v1與節(jié)點(diǎn)v10相遇時,節(jié)點(diǎn)v1進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。具體包括以下步驟:
101.節(jié)點(diǎn)v1的鄰居節(jié)點(diǎn)中包含數(shù)據(jù)包d的目標(biāo)節(jié)點(diǎn)v10,則v1把數(shù)據(jù)包直接轉(zhuǎn)發(fā)給v10。
2.節(jié)點(diǎn)v1接收數(shù)據(jù)包d,具體包括以下步驟;
201.節(jié)點(diǎn)v10收到其鄰居節(jié)點(diǎn)v1發(fā)來的數(shù)據(jù)包的傳輸請求時,其緩存空間為2m,大于數(shù)據(jù)包的大小500k,所以v10接收并緩存該數(shù)據(jù)包。
在一個實(shí)施例中,如圖9,在某一時刻節(jié)點(diǎn)v1與節(jié)點(diǎn)v2和v3相遇,節(jié)點(diǎn)v10也與節(jié)點(diǎn)v2和v3相遇。
具體路由過程如下:
1.當(dāng)攜帶數(shù)據(jù)包d的節(jié)點(diǎn)v1與v2和v3相遇時,進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。具體包括以下步驟:
101.節(jié)點(diǎn)v1的鄰居節(jié)點(diǎn)中不包含數(shù)據(jù)包d的目標(biāo)節(jié)點(diǎn)v10,則跳轉(zhuǎn)至步驟102。
102.選擇節(jié)點(diǎn)v1及其鄰居節(jié)點(diǎn)中與目標(biāo)節(jié)點(diǎn)v10的間接相遇頻率最大的節(jié)點(diǎn)v1,則v1等待與新的鄰居節(jié)點(diǎn)相遇時再進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。
在一個實(shí)施例中,如圖10,在某一時刻節(jié)點(diǎn)v1與節(jié)點(diǎn)v5和v6相遇,節(jié)點(diǎn)v10也與節(jié)點(diǎn)v5和v6相遇。假設(shè)節(jié)點(diǎn)v6的剩余緩存空間為200k,v6的緩存中包含數(shù)據(jù)包d1(ttl為6min)、數(shù)據(jù)包d2(ttl為7min)和數(shù)據(jù)包d3(ttl為8)。
具體路由過程如下:
1.當(dāng)攜帶數(shù)據(jù)包d的節(jié)點(diǎn)v1與v5和v6相遇時,進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。具體包括以下步驟:
101.節(jié)點(diǎn)v1的鄰居節(jié)點(diǎn)中不包含數(shù)據(jù)包d的目標(biāo)節(jié)點(diǎn)v10,則跳轉(zhuǎn)至步驟102。
102.選擇節(jié)點(diǎn)v1及其鄰居節(jié)點(diǎn)中與目標(biāo)節(jié)點(diǎn)v10的間接相遇頻率最大的節(jié)點(diǎn)v6,則v1選擇節(jié)點(diǎn)v6作為中繼節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。
2.節(jié)點(diǎn)v6接收數(shù)據(jù)包d,具體包括以下步驟;
201.節(jié)點(diǎn)v6收到其鄰居節(jié)點(diǎn)v1發(fā)來的數(shù)據(jù)包d的傳輸請求時,因為其緩存空間小于數(shù)據(jù)包的大小所以跳轉(zhuǎn)至步驟202。
202.節(jié)點(diǎn)v6緩存的所有數(shù)據(jù)包的ttl都大于該數(shù)據(jù)包的ttl,所以不緩存該數(shù)據(jù)包。
在一個實(shí)施例中,如圖11,在某一時刻節(jié)點(diǎn)v1與節(jié)點(diǎn)v5和v6相遇,節(jié)點(diǎn)v10也與節(jié)點(diǎn)v5和v6相遇。假設(shè)節(jié)點(diǎn)v6的剩余緩存空間為200k,v6的緩存中包含數(shù)據(jù)包d1(ttl為6min)、數(shù)據(jù)包d2(ttl為7min)和數(shù)據(jù)包d3(ttl為3)。
具體路由過程如下:
1.當(dāng)攜帶數(shù)據(jù)包d的節(jié)點(diǎn)v1與v5和v6相遇時,進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。具體包括以下步驟:
101.節(jié)點(diǎn)v1的鄰居節(jié)點(diǎn)中不包含數(shù)據(jù)包d的目標(biāo)節(jié)點(diǎn)v10,則跳轉(zhuǎn)至步驟102。
102.選擇節(jié)點(diǎn)v1及其鄰居節(jié)點(diǎn)中與目標(biāo)節(jié)點(diǎn)v10的間接相遇頻率最大的節(jié)點(diǎn)v6,則v1選擇節(jié)點(diǎn)v6作為中繼節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。
2.節(jié)點(diǎn)v6接收數(shù)據(jù)包d,具體包括以下步驟;
201.節(jié)點(diǎn)v6收到其鄰居節(jié)點(diǎn)v1發(fā)來的數(shù)據(jù)包d的傳輸請求時,因為其緩存空間小于數(shù)據(jù)包的大小所以跳轉(zhuǎn)至步驟202。
202.節(jié)點(diǎn)v6緩存數(shù)據(jù)包d3的ttl小于該數(shù)據(jù)包的ttl,所以刪除數(shù)據(jù)包d3,再接收緩存該數(shù)據(jù)包。
以上實(shí)施例僅用以說明本公開的技術(shù)方案,而非對其限制;盡管參照上述實(shí)施例對本公開進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替代;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本公開各實(shí)施例技術(shù)所述的精神范圍。