摘 要: 在“ferry”概念的基礎(chǔ)上,提出容遲網(wǎng)絡(luò)中一種新的路由算法CB-NIMF(Cluster-Based Node Initiated Message Ferrying),,在該算法下,利用普通節(jié)點(diǎn)之間的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和通信能力,縮短了數(shù)據(jù)采集網(wǎng)絡(luò)中普通節(jié)點(diǎn)向“ferry”移動(dòng)的非正常工作時(shí)間,,降低了隱性的數(shù)據(jù)丟失,增加了節(jié)點(diǎn)的工作時(shí)間以及采集的數(shù)據(jù)量,。?
關(guān)鍵詞: 容遲網(wǎng)絡(luò),; ferry; 簇,; 路由
?
Internet作為當(dāng)今全球信息交互的工具,,無疑已經(jīng)取得了巨大的成功。它使用了大量的通信協(xié)議(TCP/IP協(xié)議族)來確保通信的正常工作,。組成Internet的成千上萬的子網(wǎng)內(nèi)的所有設(shè)施都使用這些協(xié)議來進(jìn)行數(shù)據(jù)路由以及確保信息交換的可靠性,。不過,Internet上工作的協(xié)議都是基于一個(gè)假設(shè)才能正常工作的:所有的通信鏈路都穩(wěn)定地,、不間斷地連接在一起,。近幾年,無線傳感器網(wǎng)絡(luò),、移動(dòng)Ad-Hoc網(wǎng)絡(luò)等發(fā)展迅速,,不過這類網(wǎng)絡(luò)都存在著相同的問題,即網(wǎng)絡(luò)的鏈路連接是間斷性的,,傳統(tǒng)Internet上的協(xié)議并不能直接使用,。針對(duì)以上問題,,F(xiàn)ALL K于2003年在參考文獻(xiàn)[1]中給出了一個(gè)解決該問題的框架,即DTN網(wǎng)絡(luò),。之后,,關(guān)于DTN網(wǎng)絡(luò)的研究越來越受到重視[2-6]。
2004年,, ZHAO Wen Rui提出了“ferry”的概念[2]: “ferry”的移動(dòng)路徑是固定的,,不存在隨機(jī)性,該路徑稱為路由路徑,,并且假設(shè)網(wǎng)絡(luò)中的其他正常節(jié)點(diǎn)只產(chǎn)生數(shù)據(jù),,并不參與路由過程?!癴erry”路由的基本思想是:整個(gè)網(wǎng)絡(luò)的路由由快速移動(dòng)的“ferry”節(jié)點(diǎn)完成,,當(dāng)經(jīng)過某一個(gè)節(jié)點(diǎn)時(shí),“ferry” 節(jié)點(diǎn)從該節(jié)點(diǎn)上獲取要傳輸?shù)臄?shù)據(jù),,然后沿著路由路徑移動(dòng),。當(dāng)遇到目的節(jié)點(diǎn)時(shí),把數(shù)據(jù)傳輸給目的節(jié)點(diǎn),。在參考文獻(xiàn)[2]中,,提出了一種普通節(jié)點(diǎn)和“ferry”節(jié)點(diǎn)信息通信的路由算法:NIMF(Node-Initiated Message Ferrying)。在NIMF路由算法中,,當(dāng)節(jié)點(diǎn)上有數(shù)據(jù)要傳輸時(shí),,它將停止當(dāng)前工作并向“ferry”的路由路徑移動(dòng);在“ferry”節(jié)點(diǎn)要傳輸數(shù)據(jù)給普通節(jié)點(diǎn)時(shí),,也需要普通節(jié)點(diǎn)移動(dòng)到“ferry”的路由路徑,。如圖1所示,其中黑點(diǎn)表示節(jié)點(diǎn),,黑色方塊表示“ferry”,,實(shí)圓圈是“ferry”的路由路徑。當(dāng)有數(shù)據(jù)傳輸時(shí),,所有節(jié)點(diǎn)都會(huì)獨(dú)自按照最短的距離移動(dòng)到圓圈的位置,,然后等待“ferry”。
?
當(dāng)一個(gè)用于數(shù)據(jù)采集的DTN網(wǎng)絡(luò)使用NIMF進(jìn)行路由時(shí),,可以把數(shù)據(jù)丟失分為兩部分:由于路由超時(shí)而導(dǎo)致的數(shù)據(jù)丟失,對(duì)此本文稱之為顯性數(shù)據(jù)丟失,;由于節(jié)點(diǎn)移動(dòng),節(jié)點(diǎn)離開工作地點(diǎn)到再次返回工作地點(diǎn)這段時(shí)間稱為節(jié)點(diǎn)的非正常工作狀態(tài),由此導(dǎo)致的數(shù)據(jù)丟失本文稱之為隱性數(shù)據(jù)丟失,。如果節(jié)點(diǎn)離 “ferry”路由路徑很遠(yuǎn),,往返的時(shí)間將會(huì)嚴(yán)重影響數(shù)據(jù)采集的正常工作,隱性數(shù)據(jù)丟失問題將會(huì)比較嚴(yán)重,其影響甚至可能超過了顯性數(shù)據(jù)的丟失,。而且,,隨著網(wǎng)絡(luò)規(guī)模的增大,節(jié)點(diǎn)數(shù)目增多,,這種損失就會(huì)越大,。針對(duì)NIMF在節(jié)點(diǎn)移動(dòng)時(shí)間上的缺陷,本文利用節(jié)點(diǎn)之間的網(wǎng)絡(luò)結(jié)構(gòu),,將節(jié)點(diǎn)按位置先組成一個(gè)個(gè)簇,,并且在簇內(nèi)建立一個(gè)邏輯樹,讓節(jié)點(diǎn)也參與數(shù)據(jù)路由,,以減少網(wǎng)絡(luò)中節(jié)點(diǎn)的移動(dòng)時(shí)間,,從而有效降低節(jié)點(diǎn)因移動(dòng)而導(dǎo)致的隱性數(shù)據(jù)丟失。由于節(jié)點(diǎn)的非正常工作時(shí)間減少,,因節(jié)點(diǎn)處于正常工作狀態(tài)的時(shí)間就會(huì)相應(yīng)增多,,這也增大了節(jié)點(diǎn)在固定時(shí)間內(nèi)的數(shù)據(jù)采集量。
1 CB-NIMF的設(shè)計(jì)
當(dāng)網(wǎng)絡(luò)規(guī)模比較大,,節(jié)點(diǎn)和“ferry”路由路徑離得較遠(yuǎn)時(shí),,節(jié)點(diǎn)的非正常工作時(shí)間會(huì)比較長,因此會(huì)造成隱性數(shù)據(jù)丟失問題,。對(duì)此,,本文提出一種新的路由: CB-NIMF。在一個(gè)用于數(shù)據(jù)收集的DTN網(wǎng)絡(luò)中,,節(jié)點(diǎn)分布一般會(huì)有一定的規(guī)律,,比如,在比較重要的區(qū)域,,一般會(huì)有較多的節(jié)點(diǎn),,即節(jié)點(diǎn)的分布一般是不均勻的,,很容易形成一個(gè)個(gè)區(qū)域簇,。在這些簇內(nèi),各個(gè)節(jié)點(diǎn)和路由路徑的距離是不相同的,,有些離節(jié)點(diǎn)很近甚至就在節(jié)點(diǎn)的路由路徑上,,而有些節(jié)點(diǎn)則離得比較遠(yuǎn)。CB-NIMF利用網(wǎng)絡(luò)中節(jié)點(diǎn)與“ferry”路由路徑之間距離的差異讓普通節(jié)點(diǎn)也進(jìn)行數(shù)據(jù)路由工作,,盡量減少由于節(jié)點(diǎn)移動(dòng)而導(dǎo)致的隱性數(shù)據(jù)丟失,。在CB-NIMF中,對(duì)“ferry”的功能進(jìn)行一定的強(qiáng)化,?!癴erry”除了進(jìn)行數(shù)據(jù)路由之外,還將進(jìn)行網(wǎng)絡(luò)分簇并替簇內(nèi)的節(jié)點(diǎn)建立一個(gè)邏輯樹,。
1.1 分簇
在CB-NIMF中,,假設(shè)每個(gè)節(jié)點(diǎn)都知道了“ferry”的路由路徑,,同時(shí)都能準(zhǔn)確定位自己在網(wǎng)絡(luò)中所處的位置——可以通過GPRS之類來獲得。在布置網(wǎng)絡(luò)的時(shí)候,,每個(gè)節(jié)點(diǎn)首先獲取自己的位置坐標(biāo),,計(jì)算與“ferry”路由路徑之間的距離,然后通過一次長距離的通信,,將該坐標(biāo)和距離發(fā)送給“ferry”節(jié)點(diǎn),。“ferry”在收集到網(wǎng)絡(luò)中節(jié)點(diǎn)的坐標(biāo)位置后,,根據(jù)節(jié)點(diǎn)的位置分布,,將距離比較靠近的節(jié)點(diǎn)分配成一個(gè)簇。如圖2所示,,其中虛線圓圈覆蓋的范圍是一簇,。當(dāng)某個(gè)節(jié)點(diǎn)位于兩個(gè)簇之間時(shí),“ferry”節(jié)點(diǎn)將根據(jù)以下方法來確定將該節(jié)點(diǎn)加入哪一個(gè)簇:
(1)當(dāng)某個(gè)簇A中不存在與該節(jié)點(diǎn)距離比較小的節(jié)點(diǎn),,
而在另一個(gè)簇B中存在與該節(jié)點(diǎn)距離較小的節(jié)點(diǎn)時(shí),,“ferry”將會(huì)把該節(jié)點(diǎn)加入簇B的樹。
(2)當(dāng)該節(jié)點(diǎn)在2個(gè)網(wǎng)絡(luò)簇中都存在與它距離差不多一樣的節(jié)點(diǎn)時(shí),,“ferry”節(jié)點(diǎn)將分別比較該節(jié)點(diǎn)在2個(gè)樹中的深度,,同時(shí)選擇將其加入深度較小的那個(gè)邏輯樹所在的簇。如果該節(jié)點(diǎn)在兩棵邏輯樹中的深度一樣時(shí),,“ferry”將會(huì)把該節(jié)點(diǎn)加入節(jié)點(diǎn)數(shù)目較少的那個(gè)簇,。
?
1.2 邏輯樹的形成
當(dāng)“ferry”接收到所有節(jié)點(diǎn)的坐標(biāo),并把節(jié)點(diǎn)分配到相應(yīng)的簇之后,,它將根據(jù)節(jié)點(diǎn)與自己路由路徑的距離,,建立一棵邏輯樹。首先,,簇中距離最小的節(jié)點(diǎn)將會(huì)成為該簇與“ferry”通信的門節(jié)點(diǎn),。以門節(jié)點(diǎn)為根,將簇內(nèi)其他所有節(jié)點(diǎn)以距離為因素來組成邏輯樹:在形成的樹中,,父節(jié)點(diǎn)與“ferry”路由路徑的距離總是比其子節(jié)點(diǎn)與“ferry”路由路徑的距離要短,。為了使簇內(nèi)所有節(jié)點(diǎn)的移動(dòng)距離總和最小化,可以使用Prim算法來生成一棵最小生成樹,。在成功建立了樹之后,,“ferry”替每個(gè)節(jié)點(diǎn)計(jì)算它們各自在樹中的深度,然后用深度來標(biāo)記節(jié)點(diǎn),。如果2個(gè)節(jié)點(diǎn)在樹中的深度一樣,,就稱這2個(gè)節(jié)點(diǎn)在樹中屬于同一層次。然后,“ferry”把節(jié)點(diǎn)的深度以及其父節(jié)點(diǎn)和子節(jié)點(diǎn)的坐標(biāo)位置都通過一次長距離通信發(fā)送給節(jié)點(diǎn),。最終結(jié)果如圖3所示,,其中虛圓包圍的是簇,a,、b,、c、d,、e是各個(gè)簇的門節(jié)點(diǎn),,虛線形成的是一個(gè)邏輯樹。
?
1.3?網(wǎng)絡(luò)中的數(shù)據(jù)傳輸
??? 當(dāng)把網(wǎng)絡(luò)分成N個(gè)簇之后,,整個(gè)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸主要可以分為兩類:簇內(nèi)數(shù)據(jù)傳輸和簇間數(shù)據(jù)傳輸,。當(dāng)一個(gè)節(jié)點(diǎn)有數(shù)據(jù)需要傳輸時(shí),它首先判斷目的節(jié)點(diǎn)和自己是不是屬于同一個(gè)簇,,如果是同一個(gè)簇內(nèi)的節(jié)點(diǎn),,則按照簇內(nèi)數(shù)據(jù)傳輸?shù)姆绞竭M(jìn)行路由。發(fā)送節(jié)點(diǎn)首先判斷自己與目的節(jié)點(diǎn)之間深度的大小,,當(dāng)目的節(jié)點(diǎn)深度比自己小時(shí),,發(fā)送節(jié)點(diǎn)將向父節(jié)點(diǎn)移動(dòng),把數(shù)據(jù)傳輸給父節(jié)點(diǎn)后返回原位置正常工作,;當(dāng)目的節(jié)點(diǎn)深度比自己大時(shí),,發(fā)送節(jié)點(diǎn)將向自己一個(gè)子節(jié)點(diǎn)移動(dòng),把數(shù)據(jù)傳輸給自己的子節(jié)點(diǎn)后返回原位置正常工作,;當(dāng)目的節(jié)點(diǎn)深度和自己一樣時(shí),,發(fā)送節(jié)點(diǎn)將向與自己最為臨近的同層次節(jié)點(diǎn)移動(dòng),數(shù)據(jù)傳輸完成后返回原位置正常工作,。
當(dāng)發(fā)送節(jié)點(diǎn)和目的節(jié)點(diǎn)不屬于同一個(gè)簇時(shí),,路由過程將經(jīng)由門節(jié)點(diǎn)和“ferry”來完成。當(dāng)一個(gè)簇內(nèi)有節(jié)點(diǎn)要傳輸數(shù)據(jù)后,,它將會(huì)向父節(jié)點(diǎn)移動(dòng),,在與父節(jié)點(diǎn)相遇后,把數(shù)據(jù)傳輸給父節(jié)點(diǎn),,然后返回原位置開始正常工作,;而父節(jié)點(diǎn)在接收到數(shù)據(jù)后,將會(huì)開始新一輪的路由選擇過程,,這一過程將一直持續(xù)到數(shù)據(jù)到達(dá)門節(jié)點(diǎn)。當(dāng)門節(jié)點(diǎn)要傳輸數(shù)據(jù)時(shí),,它將會(huì)向“ferry”的路由路徑移動(dòng),,成功地把數(shù)據(jù)傳輸給“ferry”后,返回正常工作。而“ferry”將會(huì)把要路由的數(shù)據(jù)按照目的節(jié)點(diǎn)所在簇分類,,當(dāng)遇到一個(gè)簇的門節(jié)點(diǎn)時(shí),,將所有目的節(jié)點(diǎn)位于該簇內(nèi)的數(shù)據(jù)轉(zhuǎn)發(fā)給該門節(jié)點(diǎn)。然后該門節(jié)點(diǎn)將按照簇內(nèi)數(shù)據(jù)路由的過程將接收到的數(shù)據(jù)發(fā)送到各個(gè)目的節(jié)點(diǎn),。如圖4所示,,其中路徑1屬于簇內(nèi)數(shù)據(jù)傳輸,不需經(jīng)過 “ferry”,;路徑2屬于簇間數(shù)據(jù)傳輸,,經(jīng)由門節(jié)點(diǎn)和“ferry”來完成。
?
2 節(jié)點(diǎn)平均的非正常工作時(shí)間?
在CB-NIMF路由方式中,,筆者把普通節(jié)點(diǎn)N的非正常工作時(shí)間分成兩個(gè)部分TNm和TNw,其中,,TNm是節(jié)點(diǎn)N移動(dòng)到父節(jié)點(diǎn)所需要的時(shí)間,這個(gè)時(shí)間當(dāng)網(wǎng)絡(luò)初始化完成之后就是固定不變的,,可以用兩個(gè)節(jié)點(diǎn)之間的距離來衡量,;TNw是節(jié)點(diǎn)N在父節(jié)點(diǎn)的初始位置等待父節(jié)點(diǎn)的時(shí)間。這樣,,節(jié)點(diǎn)N的非正常工作時(shí)間為:
對(duì)于門節(jié)點(diǎn),,Tw是 “ferry” 沿路由路徑移動(dòng)一圈所需時(shí)間的一半。假設(shè)“ferry”移動(dòng)一圈所需要的時(shí)間是T,,則門節(jié)點(diǎn)的平均等待時(shí)間Tw=T/2,。那么門節(jié)點(diǎn)移動(dòng)一次的非工作時(shí)間的平均值是:
???
??? 從上述不等式(9)右邊的最后一項(xiàng)可以看出,在簇內(nèi)層次越高的節(jié)點(diǎn),,其移動(dòng)時(shí)間受“ferry”路由周期的影響就越低,。事實(shí)上,當(dāng)n≥3時(shí),,T/(2×4n)≤T/192,,當(dāng)且僅當(dāng)Twk=Tab時(shí)取等號(hào),而且,,在一個(gè)正常工作的網(wǎng)絡(luò)中,, Twk>>Tab,則不等式的最后一項(xiàng)其分母將會(huì)變得更大,,因此,,可以認(rèn)為當(dāng)節(jié)點(diǎn)在簇內(nèi)的層次k≥3之后,節(jié)點(diǎn)的非正常工作時(shí)間就與“ferry” 的路由周期關(guān)系不大,,甚至可以忽略 “ferry”的路由周期的影響,,只與節(jié)點(diǎn)間的距離有關(guān)而已。
3 仿真結(jié)果
??? 本文使用了C語言實(shí)現(xiàn)了CB-NIMF的仿真過程,。為了簡化非正常工作時(shí)間的分析,,在仿真過程中,,并沒有把能量和延遲等因素考慮在內(nèi)。
??? 系統(tǒng)概述:
在假設(shè)的DTN網(wǎng)絡(luò)模型中,,所有節(jié)點(diǎn)隨機(jī)分布在網(wǎng)絡(luò)內(nèi),, “ferry” 的路由路徑是固定的。
(1)將整個(gè)網(wǎng)絡(luò)分成50×50的方格,,只有處于同一個(gè)方格內(nèi)的節(jié)點(diǎn)才能進(jìn)行正常通信,。
(2)每個(gè)節(jié)點(diǎn)都擁有與 “ferry”進(jìn)行長距離通信的能力,不過由于長距離通信消耗的能量比正常通信消耗的能量大得多,,節(jié)點(diǎn)只會(huì)在網(wǎng)絡(luò)初始化時(shí)期通過該長距離通信向 “ferry”通知自己的坐標(biāo)數(shù)據(jù)以及從 “ferry”處獲取初始化信息,。
(3)在模型中,ferry每一個(gè)系統(tǒng)時(shí)間前進(jìn)一個(gè)單位格,,即ferry在當(dāng)前的方格只停留一個(gè)單位時(shí)間,,普通節(jié)點(diǎn)只有與ferry處于同一方格內(nèi)才能進(jìn)行普通數(shù)據(jù)傳輸。
(4)每個(gè)節(jié)點(diǎn)的移動(dòng)速度是每個(gè)單位時(shí)間可以前進(jìn)一個(gè)單位格,,包括斜對(duì)角方向的單元格,。
為了比較網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目導(dǎo)致的NIMF和CB-NIMF兩種算法節(jié)點(diǎn)移動(dòng)時(shí)間的差異,當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目分別為10,、25,、50、75,、100,、125、150,、175,、200時(shí),分別仿真了兩種算法下節(jié)點(diǎn)的移動(dòng)時(shí)間,,結(jié)果如圖5所示:當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目較少時(shí),,CB-NIMF和NIMF 兩種方式中的總節(jié)點(diǎn)移動(dòng)時(shí)間相差不多,但是隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目增加,,CB-NIMF 方式下總節(jié)點(diǎn)移動(dòng)時(shí)間將會(huì)比NIMF方式下總節(jié)點(diǎn)移動(dòng)時(shí)間越來越少,,也就是說,當(dāng)節(jié)點(diǎn)數(shù)目比較大的時(shí)候,,CB-NIMF比NIFM具有明顯的優(yōu)勢(shì),。這也與前面的分析一致,當(dāng)節(jié)點(diǎn)的數(shù)目增多,,簇內(nèi)節(jié)點(diǎn)的數(shù)目相應(yīng)增多,,高層次的節(jié)點(diǎn)將會(huì)增加,而層次越高的節(jié)點(diǎn),,其非正常工作時(shí)間與“ferry”路由周期T的關(guān)系就越小,,甚至可以說只與節(jié)點(diǎn)間的距離有關(guān),。而在一個(gè)基于NIMF的DTN網(wǎng)絡(luò)中,,每個(gè)節(jié)點(diǎn)的非正常工作時(shí)間都與 “ferry” 路由周期T密切相關(guān),,導(dǎo)致網(wǎng)絡(luò)中所有節(jié)點(diǎn)的非正常工作時(shí)間總和與節(jié)點(diǎn)數(shù)目以及T成正比。
當(dāng)節(jié)點(diǎn)數(shù)目較少時(shí),,每次簇內(nèi)的節(jié)點(diǎn)會(huì)比較少甚至可能只有1~2個(gè)節(jié)點(diǎn)存在,。因?yàn)楸舅惴ㄒ?guī)定每個(gè)簇內(nèi)只有一個(gè)節(jié)點(diǎn)能與“ferry” 節(jié)點(diǎn)進(jìn)行直接通信,如果簇內(nèi)節(jié)點(diǎn)很少時(shí),,采用CB-NIMF方式并不合適,。不過,一般用于數(shù)據(jù)采集的傳感器網(wǎng)絡(luò),,其節(jié)點(diǎn)數(shù)目都比較多,。而從前面的研究中看出,隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目的增加,,CB-NIMF的優(yōu)勢(shì)也會(huì)逐漸增加,。因此,CB-NIMF相比較于NIMF還是有巨大優(yōu)勢(shì)的,。
本文針對(duì)用于數(shù)據(jù)采集且基于“ferry”的容遲網(wǎng)絡(luò)中采用NIMF路由時(shí)節(jié)點(diǎn)移動(dòng)時(shí)間過長的缺陷,,根據(jù)網(wǎng)絡(luò)中普通節(jié)點(diǎn)也可以進(jìn)行數(shù)據(jù)路由以及網(wǎng)絡(luò)分布的特點(diǎn),提出新的基于簇的路由算法CB-NIMF,,理論推導(dǎo)和仿真結(jié)果說明,,CB-NIMF能有效地減少節(jié)點(diǎn)的移動(dòng)時(shí)間,從而增加節(jié)點(diǎn)在固定時(shí)間內(nèi)的數(shù)據(jù)采集量,。
參考文獻(xiàn)
[1] ?FALL K. A delay-tolerant network architecture for challenged internets. In Proc.SIGCOMM 2003,2003.
[2] ?ZHAO Wen Rui. Mostafa ammer ellen zegura. A message ??ferrying approach for data delivery in sparse mobile Ad?Hoc networks. In ACM MobiHoc 2004,2004.
[3]?GU Y, BOZDAG D, EKICI E, et al. Partitioning based?mobile element scheduling in wireless sensor networks. In?Proc.2nd Annual IEEE Conference on Sensor and Ad Hoc ?Communications and Networks,2005.
[4]?ZHAO W, AMMAR M, ZEGURA E. Controlling the?mobility of multiple data transport ferries in a delay-tolerant?network. In Proc.INFOCOM 2005,2005.
[5]?JEA D,SOMASUNDARA A, SRIVASTAVA? M. Multiple?controlled mobile elements(data mules) for data collection
?in sensor networks. In DCOSS 2005,2005.
[6]?ZHANG Zhen, FEI Zong Ming. Route design for multiple?ferries in delay tolerant networks. Wireless Communications?and Networking Conference, 2007. WCNC IEEE, 2007.