機會網絡數據分發方法和具有數據分發功能的機會網絡的制作方法
【技術領域】
[0001] 本發明涉及通信技術領域,具體地,涉及一種機會網絡數據分發方法和具有數據 分發功能的機會網絡。
【背景技術】
[0002] 在機會網絡中,常用的數據分發方案主要包括泛洪形式的數據分發方案和直接傳 輸形式的數據分發方案。
[0003] 泛洪形式的數據分發方案的主要思想是:源節點首先通過網絡將數據副本發送給 周圍的每一個鄰居節點,每一個鄰居節點又將數據副本傳輸給其各自的每一個鄰居節 點,……,如此繼續下去,直到將數據傳輸到目的節點。但是,泛洪形式的數據分發會產生大 量的副本,占用大量的網絡資源,而機會網絡中的網絡資源原本極其有限,因此泛洪形式的 數據分發在機會網絡中的應用受到很大限制。
[0004] 直接傳輸形式的數據分發方案的主要思想是:源節點攜帶數據,直到遇到目的節 點,才將數據轉發給目的節點。雖然該方案降低了網絡中的副本數目,但是由于節點只有遇 到目的節點才將數據轉發給目的節點,導致了機會網絡中的數據傳輸的時延大大增加,數 據轉發效率較低。
[0005] 鑒于此,目前亟需一種既能控制副本數目又具有較高數據轉發效率的機會網絡數 據分發方法。
【發明內容】
[0006] 本發明旨在至少解決現有技術中存在的技術問題之一,提出了一種機會網絡數據 分發方法和具有數據分發功能的機會網絡,其既能控制副本數目又具有較高數據轉發效 率。
[0007] 為實現本發明的目的而提供一種機會網絡數據分發方法。該方法包括下述步驟: 檢測各節點所在社區;基于傳遞節點是否在目的社區而確定是采用復制方式還是轉發方式 進行數據的分發,所述傳遞節點指的是攜帶有待傳遞數據且將要向其他節點轉發的節點。
[0008] 作為另一個技術方案,本發明還提供一種具有數據分發功能的機會網絡,所述機 會網絡包括多個節點,每個所述節點均包括:社區檢測單元,用于檢測所述節點所處的社 區;數據分發單元,用于基于所述節點是否在目的社區而確定是采用復制方式還是轉發方 式進行待傳遞數據的分發。
[0009] 本發明具有以下有益效果:
[0010] 本發明提供的機會網絡數據分發方法,基于傳遞節點是否在目的社區而確定是采 用復制方式還是轉發方式進行數據的分發,即,將數據的轉發和復制同時引入到機會網絡 的數據分發機制中,并根據傳遞節點所在社區的不同情況而啟動不同的數據發送方案,從 而在控制數據副本數目的前提下,提高數據轉發成功率和轉發效率。
[0011] 類似地,本發明提供的具有數據分發功能的機會網絡包括多個節點,每個節點均 包括數據分發單元,其能夠基于節點是否在目的社區而確定是采用復制方式還是轉發方式 進行數據的分發,即,將數據的轉發和復制同時引入到機會網絡的數據分發機制中,并根據 傳遞節點所在社區的不同情況而啟動不同的數據發送方案,從而在控制數據副本數目的前 提下,提高數據轉發成功率和轉發效率。
【附圖說明】
[0012] 圖1為本發明第一實施例提供的機會網絡數據分發方法的流程圖;
[0013] 圖2為本發明第二實施例提供的機會網絡數據分發方法的流程圖;
[0014] 圖3為本發明第三實施例提供的機會網絡數據分發方法的流程圖;
[0015] 圖4為本發明一個實施例提供的機會網絡中的各節點的功能模塊示意圖;以及
[0016] 圖5為機會網絡中的兩個社區進行數據分發的過程示意圖。
【具體實施方式】
[0017] 為使本領域的技術人員更好地理解本發明的技術方案,下面結合附圖對本發明提 供的機會網絡數據分發方法和具有數據分發功能的機會網絡進行詳細描述。
[0018] 首先,對本發明中的幾個術語予以特別說明。"傳遞節點"指的是攜帶有待傳遞數 據并將要向其他節點傳遞該數據的節點,其可以為源節點。"轉發"指的是:傳遞節點將待傳 遞數據有選擇地向其鄰居節點中的某一個特定節點發送。"復制"指的是:傳遞節點將待傳 遞數據向其鄰居節點中的同屬于一個社區的全部節點(非特定節點)發送。
[0019] 圖1為本發明第一實施例提供的機會網絡數據分發方法的流程圖。如圖1所示,該 方法具體包括下述步驟:
[0020] 步驟110,檢測網絡中的各節點所在的社區。
[0021 ]本步驟中,因機會網絡通常包含多個社區,各社區通常又包含多個節點,故各節點 首先需要檢測出其自身所屬哪個社區。具體地,各節點基于K-CLIQUE社區檢測算法而檢測 其自身所在社區,并記錄下來。
[0022]步驟120,基于傳遞節點是否在目的社區而確定是采用復制方式還是轉發方式進 行數據的分發。所謂目的社區指的是目的節點所在的社區。
[0023]本步驟中,當前攜帶有待傳遞數據的傳遞節點首先判斷自身是否處于目的社區。 當該傳遞節點確定自身處于目的社區時,則采用復制的方式分發數據,即,該傳遞節點將所 攜帶的待傳遞數據復制給同屬于目的社區的各鄰居節點,若這些鄰居節點中不存在目的節 點,則這些鄰居節點也會將待傳遞數據復制給其各自的同屬于目的社區的各鄰居節點,以 此類推,直至待傳遞數據到達目的節點;當該傳遞節點確定自身未處于目的社區時,則采用 轉發的方式分發數據,即,該傳遞節點將所攜帶的待傳遞數據有選擇地轉發給其鄰居節點 中的某一個節點,若接收到待傳遞數據的該節點不在目的社區,則該節點也會將待傳遞數 據有選擇地轉發給其鄰居節點中的某一個節點,以此類推,直至將待傳遞數據轉發至目的 社區。
[0024]本發明實施例提供的機會網絡數據分發方法,首先檢測各個節點所處社區,而后 基于傳遞節點是否在目的社區而確定是采用復制方式還是轉發方式進行數據的分發,即, 將數據的轉發和復制同時引入到機會網絡的數據分發機制中,并根據傳遞節點所在社區的 不同情況而啟動不同的數據發送方案,從而在控制數據副本數目的前提下,提高數據轉發 成功率和轉發效率。
[0025] 圖2為本發明第二實施例提供的機會網絡數據分發方法的流程圖。如圖2所示,該 方法具體包括下述步驟:
[0026] 步驟210,檢測網絡中的各節點所在的社區。
[0027]本步驟中,機會網絡中的各節點基于K-CLIQUE社區檢測算法而檢測其自身所在社 區,并記錄下來。并且,經過本步驟中的社區檢測后,即可知曉哪些節點不屬于目的社區,目 的社區包含的節點數目等。
[0028] 步驟220,計算節點轉發數據到目的社區的轉發權值。
[0029] 本步驟中,對于機會網絡中的除目的社區之外的各個社區,計算其中各個節點將 數據轉發到目的社區的轉發權值。下面以在該機會網絡中但并不屬于目的社區的節點j為 例來說明如何計算節點的轉發權值。
[0030] 具體地,假設社區B為目的社區,其存在N個節點,分別記作B1,其中i為1到N的正整 數。定義t為兩個節點相遇的間隔時間,并將最新的相遇間隔時間的數值記錄在本地歷史數 據中。例如,節點j與節點B 1在社區B相遇,將這兩個節點的相遇間隔時間記作^,并將其最 新的相遇間隔時間的數值記錄在本地歷史數據中;對應地,節點j與社區B中的任一節點的 相遇間隔時間的集合為:
并將該集合中的各元素的最新數值記錄 在本地歷史數據中。
[0031 ]根據下述公式1,計算節點j轉發數據到社區B的轉發權值:
[0033] 其中,W表示權值;Dj,B(W)表示節點j轉發數據到社區B的轉發權值;h為節點j與 節點B 1在社區B相遇的相遇間隔時間,其數值取自本地歷史數據中的記錄。
[0034] 根據上述公式1及本地歷史數據,計算得到目的社區之外的各個社區中的各個節 點面向目的社區的轉發權值,并予以存儲。
[0035] 步驟230,判斷傳遞節點是否在目的社區,如果是,則轉到步驟250,如果否,則轉到 步驟240。
[0036] 本步驟中,當前攜帶有待傳遞數據的傳遞節點判斷其自身是否處于目的社區,BP