基于等級(jí)社區(qū)結(jié)構(gòu)的移動(dòng)社交網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及計(jì)算機(jī)無線網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于等級(jí)社區(qū)結(jié)構(gòu)的移 動(dòng)社交網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)方法。
【背景技術(shù)】
[0002] 容遲網(wǎng)絡(luò)(Delay tolerant networks,DTNs)最早是為了解決美國國防部先進(jìn)研 宄項(xiàng)目局(Defense advanced research projects agency,DARPA)提出的星際互聯(lián)問題, 后來逐漸發(fā)現(xiàn)了它的廣泛應(yīng)用場(chǎng)景,如移動(dòng)社交網(wǎng)絡(luò)、車載網(wǎng)絡(luò)、戰(zhàn)場(chǎng)通信、野生動(dòng)物保護(hù) 和偏遠(yuǎn)地區(qū)的互聯(lián)網(wǎng)接入等具有挑戰(zhàn)性的領(lǐng)域。因此,它受到軍事、學(xué)術(shù)和商業(yè)領(lǐng)域的廣 泛關(guān)注,被認(rèn)為是實(shí)現(xiàn)"無處不在的網(wǎng)絡(luò)"的一項(xiàng)關(guān)鍵技術(shù),有著重要的理論價(jià)值和實(shí)踐意 義。隨著近年來智能手機(jī)和無線技術(shù)(WIFI、3G、藍(lán)牙等)的快速發(fā)展,使得移動(dòng)社交網(wǎng)絡(luò) (Mobile social networks, MSNs)越來越成為容遲網(wǎng)絡(luò)的一個(gè)非常重要應(yīng)用。在移動(dòng)社交 網(wǎng)絡(luò)中,人們通過攜帶的無線終端設(shè)備在近距離相遇時(shí)這種間歇式的連接相互傳遞數(shù)據(jù), 從而實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備之間的數(shù)據(jù)通信。
[0003] 在移動(dòng)社交網(wǎng)絡(luò),由于動(dòng)態(tài)變化的網(wǎng)絡(luò)拓?fù)?、?jié)點(diǎn)密度低、電池供電等原因造成網(wǎng) 絡(luò)一般不存在端到端的路徑。因此,移動(dòng)社交網(wǎng)絡(luò)中數(shù)據(jù)轉(zhuǎn)發(fā)是一個(gè)關(guān)鍵問題。根據(jù)數(shù)據(jù) 包復(fù)制轉(zhuǎn)發(fā)的策略,目前數(shù)據(jù)轉(zhuǎn)發(fā)方法主要包括基于洪泛的方法、基于概率的方法和基于 社會(huì)屬性的方法。傳染?。‥pidemic)方法是移動(dòng)設(shè)計(jì)網(wǎng)絡(luò)中第一個(gè)被提出的基于洪泛的 數(shù)據(jù)轉(zhuǎn)發(fā)方法,該方法采用"攜帶-存儲(chǔ)-轉(zhuǎn)發(fā)"范式,源節(jié)點(diǎn)將數(shù)據(jù)包復(fù)制給所有相遇的節(jié) 點(diǎn),這些節(jié)點(diǎn)存儲(chǔ)這些數(shù)據(jù)包,同樣在遇到其它沒有數(shù)據(jù)包拷貝節(jié)點(diǎn)時(shí),也產(chǎn)生新的拷貝轉(zhuǎn) 發(fā)給相遇節(jié)點(diǎn),因此具有最高的傳遞率和最小的傳遞延遲。但是,由于網(wǎng)絡(luò)中存在大量冗余 的數(shù)據(jù)包,因此造成網(wǎng)絡(luò)帶寬、能量等網(wǎng)絡(luò)資源的浪費(fèi)。為此,一種有限制的洪泛方法,噴射 等待(Spray and Wait)方法被提出。它包括噴射和等待兩個(gè)階段,在噴射階段,在網(wǎng)絡(luò)中 傳播一定數(shù)量的數(shù)據(jù)包拷貝,在等待階段,數(shù)據(jù)包的攜帶者僅僅在遇到目的節(jié)點(diǎn)才會(huì)轉(zhuǎn)發(fā) 數(shù)據(jù)包。在基于概率的方法中,節(jié)點(diǎn)經(jīng)常會(huì)將數(shù)據(jù)傳遞給到目的節(jié)點(diǎn)概率更高的節(jié)點(diǎn)。概 率(Prophet)方法是基于節(jié)點(diǎn)之間的相遇歷史信息和傳遞性來預(yù)測(cè)每個(gè)節(jié)點(diǎn)的傳遞概率, 即將數(shù)據(jù)包傳遞給目的節(jié)點(diǎn)的概率。數(shù)據(jù)包的攜帶者將數(shù)據(jù)包轉(zhuǎn)發(fā)給傳遞概率更高的節(jié) 點(diǎn)?;谏鐣?huì)屬性的方法是最近的研宄焦點(diǎn)之一,它通過從網(wǎng)絡(luò)社會(huì)屬性的角度擇中繼節(jié) 點(diǎn),其中社會(huì)屬性包括社區(qū)、中心性、友好性和相似性等。冒泡方法首先利用全局中心性來 傳遞數(shù)據(jù)包直至到達(dá)目的節(jié)點(diǎn)所在社區(qū),然后利用局部中心性在社區(qū)內(nèi)將數(shù)據(jù)包傳遞給目 的節(jié)點(diǎn)。Dsearching基于節(jié)點(diǎn)的社區(qū)活動(dòng)性將移動(dòng)社交網(wǎng)絡(luò)分成若干個(gè)子區(qū)域,存儲(chǔ)節(jié)點(diǎn) 訪問過的子區(qū)域和移動(dòng)信息,利用這些信息可以有效地發(fā)送數(shù)據(jù)包從而傳遞到目的節(jié)點(diǎn), 很大地降低了傳遞延遲?;谏鐣?huì)群體的數(shù)據(jù)轉(zhuǎn)發(fā)方法(Social groups based routing, SGBR)為任意節(jié)點(diǎn)對(duì)(a,b)定義一個(gè)連通度數(shù)rab=(r_)。1(1,+(1-(1\,丄1(1,)a,其 中(^\丄1[1是節(jié)點(diǎn)對(duì)(3,13)之間之前的連通度數(shù),(1是更新因子,丫是老化因子,1^是自 它們上次碰面以來經(jīng)歷的時(shí)間。初始時(shí)源節(jié)點(diǎn)產(chǎn)生一定數(shù)量的數(shù)據(jù)包拷貝;當(dāng)數(shù)據(jù)包攜帶 者遇到目的節(jié)點(diǎn)則轉(zhuǎn)發(fā)數(shù)據(jù)包;當(dāng)數(shù)據(jù)包攜帶者遇到與本節(jié)點(diǎn)的連通度數(shù)小于一個(gè)事先給 定的閾值Cth的節(jié)點(diǎn)(即與自己不屬于同一社會(huì)組),則將一半數(shù)據(jù)包副本轉(zhuǎn)發(fā)給該節(jié)點(diǎn), 自己留下剩余一半數(shù)據(jù)包副本,同時(shí)如果它們之間連通度大于一個(gè)事先給定的閾值D tJIlJ 丟棄自己的所有數(shù)據(jù)包副本。
[0004] 但是,目前研宄工作考慮的社會(huì)屬性相對(duì)較簡(jiǎn)單,缺乏從貼近現(xiàn)實(shí)社會(huì)、更加復(fù)雜 的社會(huì)屬性結(jié)構(gòu)出發(fā)設(shè)計(jì)數(shù)據(jù)轉(zhuǎn)發(fā)方法。在本發(fā)明中,我們提出了基于等級(jí)社區(qū)結(jié)構(gòu)的社 區(qū)數(shù)據(jù)轉(zhuǎn)發(fā)方法。等級(jí)社區(qū)結(jié)構(gòu)由大小社區(qū)組成。其中,小社區(qū)是利用節(jié)點(diǎn)間的友好性構(gòu) 建的,大社區(qū)則是利用小社區(qū)之間的關(guān)系來構(gòu)建的。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明目的就是為了彌補(bǔ)已有技術(shù)的缺陷,提供一種基于等級(jí)社區(qū)結(jié)構(gòu)的移動(dòng)社 交網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)方法。
[0006] 本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0007] 基于等級(jí)社區(qū)結(jié)構(gòu)的移動(dòng)社交網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于,該方法具體步驟 如下:
[0008] (1)網(wǎng)絡(luò)中節(jié)點(diǎn)統(tǒng)計(jì)其它節(jié)點(diǎn)與其聯(lián)系的次數(shù),并且根據(jù)朋友的定義計(jì)算自己的 朋友圈,具體過程如下:
[0009] (I. 1)變量Rj表示與節(jié)點(diǎn)j接觸過的節(jié)點(diǎn)集合,定義另外一個(gè)節(jié)點(diǎn)i對(duì)于節(jié)點(diǎn)j
數(shù),I & I是集合&的勢(shì),r U是節(jié)點(diǎn)j的鄰居集合L中第k個(gè)節(jié)點(diǎn);CCR u表示節(jié)點(diǎn)i對(duì)于 節(jié)點(diǎn)j的累計(jì)接觸次數(shù)平方,與節(jié)點(diǎn)j的鄰居集合&中所有節(jié)點(diǎn)跟節(jié)點(diǎn)j接觸次數(shù)平方和 的比值;
網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目,A是一個(gè)實(shí)數(shù)可以根據(jù)不同的應(yīng)用場(chǎng)合而設(shè)定不同的值;
[0011] (1. 3)在節(jié)點(diǎn)j,如果另外一個(gè)節(jié)點(diǎn)i對(duì)于節(jié)點(diǎn)j的累計(jì)接觸比例CCRi,」彡CCRtte, 則稱節(jié)點(diǎn)i屬于節(jié)點(diǎn)的j的朋友圈;
[0012] (2)節(jié)點(diǎn)相遇時(shí)交換彼此的朋友圈,通過計(jì)算得到網(wǎng)絡(luò)朋友關(guān)系圖,具體過程如 下:
[0013] (2. 1)如果節(jié)點(diǎn)i和節(jié)點(diǎn)j屬于彼此的朋友圈,即CCRiJ彡CCR thr而且 CCRli多CCRtte,則稱節(jié)點(diǎn)i和節(jié)點(diǎn)j是朋友關(guān)系,當(dāng)節(jié)點(diǎn)i和節(jié)點(diǎn)j是朋友關(guān)系時(shí),定義變 量fu的值為1,否則它的值為〇;
[0014] (2. 2)通過相遇的節(jié)點(diǎn)彼此交換朋友圈,每個(gè)節(jié)點(diǎn)可以得到一個(gè)網(wǎng)絡(luò)朋友關(guān)系圖, 用G = (V,E)表示;其中,V表示圖中的節(jié)點(diǎn)集合,E表示圖中邊的集合;如果節(jié)點(diǎn)i和節(jié)點(diǎn) j是朋友關(guān)系,則它們之間存在一條邊;
[0015] (3)數(shù)據(jù)包攜帶者根據(jù)網(wǎng)絡(luò)朋友關(guān)系圖計(jì)算目的節(jié)點(diǎn)所在的大小社區(qū),為數(shù)據(jù)轉(zhuǎn) 發(fā)做準(zhǔn)備,具體過程如下:
[0016] (3. 1) -般情況下,一個(gè)節(jié)點(diǎn)的朋友們之間也有可能是朋友,因此,將彼此之間都 是朋友關(guān)系的節(jié)點(diǎn)集合定義為一個(gè)小社區(qū);可以根據(jù)網(wǎng)絡(luò)朋友關(guān)系圖G= (V,E)得到目的 節(jié)點(diǎn)所在大小社區(qū)們;
[0017] (3.2)小社區(qū)是一個(gè)所有成員節(jié)點(diǎn)彼此都是朋友的節(jié)點(diǎn)集合,如果可以找到目的 節(jié)點(diǎn)所在的小社區(qū),就可以直接或者間接地通過這些目的節(jié)點(diǎn)的朋友快速有效地傳遞數(shù)據(jù) 包到達(dá)目的節(jié)點(diǎn);
[0018] (3.3)接著,在小社區(qū)的基礎(chǔ)上,定義一個(gè)由若干小社區(qū)組成的大社區(qū),它的定義 為:如果兩個(gè)小社區(qū)之間存在至少K對(duì)朋友節(jié)點(diǎn),稱它們屬于同一個(gè)大社區(qū),根據(jù)目的節(jié)點(diǎn) 所在的小社區(qū)之間的朋友對(duì)數(shù)目,可以得到目的節(jié)點(diǎn)所在的大社區(qū)們;
[0019] (4)如果數(shù)據(jù)包攜帶者節(jié)點(diǎn)j位于目的節(jié)點(diǎn)所在小社區(qū)內(nèi),則節(jié)點(diǎn)j會(huì)將數(shù)據(jù)包傳 遞給每一個(gè)屬于SCd且沒有該數(shù)據(jù)包拷貝的相遇節(jié)點(diǎn),從而迅速有效地傳遞數(shù)據(jù)包給目的 節(jié)點(diǎn)d ;其中,變量SCd表示目的節(jié)點(diǎn)d所在的小社區(qū)們的節(jié)點(diǎn)集合;同時(shí),為了節(jié)省網(wǎng)絡(luò)資 源和考慮到小社區(qū)的節(jié)點(diǎn)之間的頻繁接觸情況,限制數(shù)據(jù)包在小社區(qū)中最多經(jīng)過三跳到達(dá) 目的節(jié)點(diǎn)。
[0020] (5)如果數(shù)據(jù)包攜帶者節(jié)點(diǎn)j在目的節(jié)點(diǎn)所在小社區(qū)外且在目的節(jié)點(diǎn)所在的大社 區(qū)內(nèi),則分為四種情況分別處理:
[0021] (5. 1)如果目的節(jié)點(diǎn)d e Rj,節(jié)點(diǎn)j直接轉(zhuǎn)發(fā)數(shù)據(jù)包給目的節(jié)點(diǎn)d ;
[0022] (5.2)如果目的節(jié)點(diǎn),并且,則選擇節(jié)點(diǎn)i作為中繼點(diǎn)轉(zhuǎn)發(fā)數(shù)