摘 要: 在“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ì)比較長(zhǎng),因此會(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”路由路徑之間的距離,然后通過一次長(zhǎng)距離的通信,將該坐標(biāo)和距離發(fā)送給“ferry”節(jié)點(diǎn)?!癴erry”在收集到網(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)位置都通過一次長(zhǎng)距離通信發(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的仿真過程。為了簡(jiǎn)化非正常工作時(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)行長(zhǎng)距離通信的能力,不過由于長(zhǎng)距離通信消耗的能量比正常通信消耗的能量大得多,節(jié)點(diǎn)只會(huì)在網(wǎng)絡(luò)初始化時(shí)期通過該長(zhǎng)距離通信向 “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í)間過長(zhǎng)的缺陷,根據(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.