欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)p2p副本一致性維護(hù)方法

文檔序號:7954352閱讀:169來源:國知局
專利名稱:基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)p2p副本一致性維護(hù)方法
技術(shù)領(lǐng)域
本發(fā)明涉及電子計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),進(jìn)一步是指一種基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法。
背景技術(shù)
副本的存在是提高P2P系統(tǒng)可擴(kuò)展性、容錯性、可用性和減少查詢響應(yīng)時間的有效手段。P2P系統(tǒng)最大的特點(diǎn)就是用戶之間直接共享資源,為了提高P2P系統(tǒng)的容錯性、可用性并減少查詢響應(yīng)時間,P2P系統(tǒng)中文件都保存多個副本。目前P2P副本的研究重點(diǎn)集中在文件副本的建立放置策略和定位查找方法,以便合理地配置副本資源的位置,通過優(yōu)化資源查找來保證網(wǎng)絡(luò)的負(fù)載均衡。
無結(jié)構(gòu)分散式P2P副本一致性維護(hù)問題是指在無結(jié)構(gòu)分散式P2P網(wǎng)絡(luò)中,一個或者多個副本節(jié)點(diǎn)由于動態(tài)讀寫原因,副本出現(xiàn)改動時,通過節(jié)點(diǎn)間消息傳遞,確保相關(guān)節(jié)點(diǎn)保存的文件副本一致性。然而,以往研究認(rèn)為P2P系統(tǒng)中共享的是靜態(tài)資源,沒有經(jīng)常需要更新的內(nèi)容,對這些資源的訪問通常是只讀形式,如mp3、video等。隨著P2P的新型應(yīng)用如P2P游戲、信任管理、目錄服務(wù)、聯(lián)機(jī)拍賣、遠(yuǎn)程協(xié)作等的出現(xiàn),共享的文件以只讀的形式轉(zhuǎn)換為可讀寫形式,文件更新頻繁,確保其副本的一致性是保證其正確運(yùn)行的關(guān)鍵。因此,設(shè)計(jì)P2P網(wǎng)絡(luò)多個資源副本的一致性維護(hù)方法,確保P2P新業(yè)務(wù)的開展,是十分迫切的事情。一方面,如果沒有有效的一致性維護(hù)方法,P2P應(yīng)用就只能局限于提供靜態(tài)的非頻繁更新的文件共享;另一方面,新業(yè)務(wù)的開展需要一致性維護(hù)方法來為動態(tài)內(nèi)容更新提供保障。
目前,針對P2P副本一致性維護(hù)的研究并不是很多。在結(jié)構(gòu)化P2P網(wǎng)絡(luò)中,如Chord、CAN等,各節(jié)點(diǎn)的連接具有某種規(guī)則的結(jié)構(gòu),通過特殊設(shè)計(jì)的方法來嚴(yán)格控制數(shù)據(jù)存放和網(wǎng)絡(luò)拓?fù)洌恢滦跃S護(hù)往往可以借助分布式哈希表完成,如“副本分割樹”的結(jié)構(gòu)化P2P網(wǎng)絡(luò)副本一致性維護(hù)方法。在無結(jié)構(gòu)P2P網(wǎng)絡(luò)中,如Gnutella、Freenet等,由于這類系統(tǒng)由大范圍的自愿節(jié)點(diǎn)組成,沒有對拓?fù)浣Y(jié)構(gòu)和文件存放的控制,對于數(shù)據(jù)的可用性和持久性通常只提供松散的保證,現(xiàn)有的無結(jié)構(gòu)P2P網(wǎng)絡(luò)中存在的副本一致性維護(hù)方法有基于洪泛(Flooding)的副本一致性維護(hù)方法、基于謠言(Gossip)的副本一致性維護(hù)方法和基于副本鏈(Replica Chain)一致性維護(hù)方法。但洪泛法(Flooding)會在網(wǎng)絡(luò)中產(chǎn)生大量的冗余信息,其跳步Time-to-Live(TTL)選擇具有盲目性;而謠言法(Gossip)在減少冗余信息和所有副本都得到一致性維護(hù)之間需要權(quán)衡;副本鏈(Replica Chain)一致性維護(hù)方法雖然可以有效的減少冗余消息的產(chǎn)生,但是每個節(jié)點(diǎn)必須維護(hù)一個周圍節(jié)點(diǎn)的副本鏈,在無結(jié)構(gòu)分散P2P網(wǎng)絡(luò)中,節(jié)點(diǎn)只知道其直接相連的鄰居節(jié)點(diǎn),構(gòu)造和維護(hù)一個副本鏈帶來了額外通信交互開銷,而且此方法性能參數(shù)k的選擇也如洪泛法中TTL選擇一樣是一個折中的結(jié)果。
已經(jīng)存在的無結(jié)構(gòu)P2P網(wǎng)絡(luò)副本一致性維護(hù)方法,要么傳輸消息的冗余量大,要么需要額外構(gòu)造表現(xiàn)網(wǎng)絡(luò)的拓?fù)湫畔⒔Y(jié)構(gòu)來輔助更新消息傳輸,參數(shù)確定困難,方法實(shí)現(xiàn)受一定限制,判斷更新消息是否冗余是在消息報(bào)文傳播后,不能在傳輸?shù)脑搭^進(jìn)行控制,不便于P2P系統(tǒng)的擴(kuò)展。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,針對目前無結(jié)構(gòu)P2P副本一致性維護(hù)方法對已經(jīng)更新過的節(jié)點(diǎn)沒有記憶性,產(chǎn)生大量的消息冗余這一缺陷,提出一種基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法;該方法從更改傳播消息報(bào)文的角度出發(fā),在報(bào)文頭部增加一個用于記錄已經(jīng)收到更新消息節(jié)點(diǎn)的地址軌跡標(biāo)簽,將已經(jīng)獲得更新的節(jié)點(diǎn)地址信息作為更新消息的一部分進(jìn)行傳輸,當(dāng)需要發(fā)起新一輪消息傳輸時,借助節(jié)點(diǎn)軌跡標(biāo)簽,對鄰居節(jié)點(diǎn)進(jìn)行地址查詢檢查判斷鄰居節(jié)點(diǎn)是否已經(jīng)收到更新消息,完成對冗余消息的提前檢測,減少消息的冗余傳輸,同時為了減少附加到報(bào)文中的節(jié)點(diǎn)地址的長度,提出用BloomFilter優(yōu)化節(jié)點(diǎn)地址鏈表軌跡標(biāo)簽表示和節(jié)點(diǎn)地址查找一致性維護(hù)方法。
本發(fā)明的技術(shù)解決方案是,所述基于軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法為從直接更改傳輸副本更新消息報(bào)文的角度出發(fā),通過在報(bào)文頭部增加一個已經(jīng)收到更新的節(jié)點(diǎn)軌跡標(biāo)簽,每輪更新消息傳輸時,消息傳輸源節(jié)點(diǎn)將所有發(fā)送的目標(biāo)節(jié)點(diǎn)添加到這個節(jié)點(diǎn)軌跡標(biāo)簽中,完成對已經(jīng)傳輸節(jié)點(diǎn)的記錄,收到消息的節(jié)點(diǎn)通過檢查報(bào)文中的節(jié)點(diǎn)軌跡標(biāo)簽,完成對冗余消息的提前檢測,減少消息在節(jié)點(diǎn)間的冗余傳輸。
本發(fā)明所述方法可以大大減少副本冗余傳輸消息數(shù)目,降低了副本一致性維護(hù)代價,增強(qiáng)P2P網(wǎng)絡(luò)的可擴(kuò)展性,為P2P網(wǎng)絡(luò)開展動態(tài)文件更新的新業(yè)務(wù)提供保障。
以下對本發(fā)明方法做出進(jìn)一步說明。
圖1(a)Gnutella中采用洪泛法(Flooding)進(jìn)行一致性維護(hù)時消息發(fā)送過程。節(jié)點(diǎn)①是更新的發(fā)起者,第一輪傳輸時,節(jié)點(diǎn)①向其鄰節(jié)點(diǎn)發(fā)送更新消息 ①->②,①->③,①->④;第二輪傳輸時,節(jié)點(diǎn) ②,③,④向其鄰節(jié)點(diǎn)發(fā)送消息 ②->③,②->④,②->⑤,③->②,③->④,③->⑤, ④->②,④->③,④->⑤;第三輪傳輸時,節(jié)點(diǎn)⑤向其鄰節(jié)點(diǎn)發(fā)送消息⑤->③,⑤->④,三輪傳輸過后共產(chǎn)生更新消息19條,平均每個節(jié)點(diǎn)收到2個重復(fù)的更新消息。
大量冗余消息的產(chǎn)生,來自盲目的洪泛,該方法中每輪的傳輸都只排除一個節(jié)點(diǎn)(消息來源節(jié)點(diǎn))。如第二輪中 ②,③,④都是節(jié)點(diǎn)①的鄰居節(jié)點(diǎn),是①的直接近鄰。他們之間的互傳消息 ②->③,②->④,③->②,③->④, ④->②,④->③都是冗余消息。
基于節(jié)點(diǎn)軌跡標(biāo)簽一致性維護(hù)方法是將已經(jīng)接收更新的節(jié)點(diǎn)地址記錄下來,將其放在更新消息報(bào)文頭中發(fā)送給其他節(jié)點(diǎn),使其他節(jié)點(diǎn)不再發(fā)送更新消息到已經(jīng)記錄過的節(jié)點(diǎn),從而減少消息冗余。根據(jù)無結(jié)構(gòu)P2P網(wǎng)絡(luò)中的假定(每個節(jié)點(diǎn)只知道與其直接相連的鄰居節(jié)點(diǎn)的信息),本發(fā)明方法通過在傳輸?shù)南?bào)文中預(yù)留一個節(jié)點(diǎn)軌跡標(biāo)簽,將每次發(fā)送的目標(biāo)鄰居節(jié)點(diǎn)集記錄在此標(biāo)簽中,收到消息后,首先檢查節(jié)點(diǎn)軌跡標(biāo)簽,更新消息只發(fā)往不在標(biāo)簽中的鄰居節(jié)點(diǎn),這樣就可以避免消息在近鄰節(jié)點(diǎn)間的冗余傳輸。其節(jié)點(diǎn)軌跡標(biāo)簽方法的消息傳輸過程如圖1(b)所示,①向其鄰節(jié)點(diǎn) ②,③,④發(fā)送副本更新消息,第一輪①將發(fā)送目標(biāo)節(jié)點(diǎn)集和自身 作為節(jié)點(diǎn)軌跡添加到更新報(bào)文頭部,第一輪產(chǎn)生更新消息 ①->②,①->③,①->④;第二輪傳輸,節(jié)點(diǎn) ②,③,④收到更新消息后,首先檢查其鄰節(jié)點(diǎn)是否已記錄在節(jié)點(diǎn)軌跡標(biāo)簽,只向不在標(biāo)簽中的節(jié)點(diǎn)發(fā)送更新消息②->⑤,③->⑤,④->⑤,同時在標(biāo)簽中記錄新的節(jié)點(diǎn)⑤,這樣,第二輪中減少更新消息10條;節(jié)點(diǎn)⑤收到的更新消息標(biāo)簽中已包含了其所有鄰居節(jié)點(diǎn),所以不再傳輸,這樣減少2條更新消息。雖然基于節(jié)點(diǎn)軌跡標(biāo)簽的方法思路簡單,卻可以有效減少傳輸冗余,而且可以減少一致性維護(hù)時間(如,最后一輪節(jié)點(diǎn)⑤不再繼續(xù)傳輸更新消息給其他節(jié)點(diǎn))。
基于節(jié)點(diǎn)軌跡標(biāo)簽的P2P一致性維護(hù)方法的消息報(bào)文如圖2所示第一部分是添加的節(jié)點(diǎn)地址軌跡鏈表標(biāo)簽,第二部分是副本更新消息。
節(jié)點(diǎn)軌跡標(biāo)簽一致性維護(hù)方法其思想是在更新消息報(bào)文頭部添加已經(jīng)傳輸?shù)墓?jié)點(diǎn)地址信息,節(jié)點(diǎn)在每發(fā)起新一輪傳輸時,首先檢查自己的鄰居目標(biāo)節(jié)點(diǎn)是否已經(jīng)在更新消息的節(jié)點(diǎn)軌跡標(biāo)簽中,如果已經(jīng)存在,說明此鄰居節(jié)點(diǎn)已經(jīng)得到更新消息,不向此節(jié)點(diǎn)發(fā)送,否則就向此節(jié)點(diǎn)發(fā)送,方法的具體實(shí)施流程如圖3所示,包括三個主要步驟步驟1產(chǎn)生新添加到報(bào)文中的地址軌跡鏈表標(biāo)簽。收到副本更新消息的節(jié)點(diǎn)首先檢查自己是否為第一次收到更新消息,如果是第一次收到更新消息,就發(fā)起一輪新的傳輸。其產(chǎn)生新的軌跡標(biāo)簽過程為1)老標(biāo)簽剝離收到副本更新消息的節(jié)點(diǎn)從傳輸消息報(bào)文頭部得到附加的節(jié)點(diǎn)地址軌跡鏈表標(biāo)簽,2)新標(biāo)簽產(chǎn)生將本輪需傳輸?shù)哪繕?biāo)鄰居節(jié)點(diǎn)地址通過插入運(yùn)算添加到老的地址軌跡標(biāo)簽中,得到的新的地址鏈表標(biāo)簽。
步驟2判斷目標(biāo)鄰居節(jié)點(diǎn)是否需要發(fā)送更新消息。通過檢查接收到的副本更新消息報(bào)文的地址軌跡標(biāo)簽鏈表是否包含鄰居節(jié)點(diǎn)來判斷是否向鄰居節(jié)點(diǎn)發(fā)送更新消息,如果包含,說明此鄰居節(jié)點(diǎn)已經(jīng)獲得更新消息,不再向此節(jié)點(diǎn)發(fā)送,否則就向此節(jié)點(diǎn)發(fā)送。其具體的操作是在地址軌跡鏈表標(biāo)簽中進(jìn)行查找運(yùn)算,逐個比較查詢本輪傳輸?shù)泥従庸?jié)點(diǎn)地址是否在軌跡鏈表中,如果查找結(jié)果為真,不向此節(jié)點(diǎn)發(fā)送,否則就向此節(jié)點(diǎn)發(fā)送。
步驟3發(fā)送副本更新消息。將消息報(bào)文中的地址軌跡鏈表標(biāo)簽用步驟1產(chǎn)生的新標(biāo)簽替代,發(fā)送到步驟2得到的需要發(fā)送副本更新消息的鄰居節(jié)點(diǎn)。
上述方法具有以下優(yōu)點(diǎn)首先,節(jié)點(diǎn)軌跡標(biāo)簽保存了更新消息傳輸軌跡,可以杜絕消息傳輸循環(huán);其次,保證了近鄰之間的消息不傳遞;最后,消息發(fā)送源節(jié)點(diǎn)可以主動判斷來避免產(chǎn)生消息冗余,減少傳輸帶寬。
本發(fā)明進(jìn)一步提出的Bloom Filter優(yōu)化地址標(biāo)簽無結(jié)構(gòu)P2P副本一致性維護(hù)方法,是對直接存儲節(jié)點(diǎn)地址鏈表的軌跡標(biāo)簽法的優(yōu)化,通過Bloom Filter結(jié)構(gòu)縮小軌跡標(biāo)簽的存儲空間,簡化節(jié)點(diǎn)是否在軌跡中的查詢判斷。亦即,它是利用Bloom Filter數(shù)據(jù)結(jié)構(gòu)表示地址軌跡標(biāo)簽和節(jié)點(diǎn)地址掩碼,縮小節(jié)點(diǎn)軌跡表示空間復(fù)雜度,簡化鄰居節(jié)點(diǎn)是否在軌跡中的查詢判斷,同時降低查詢算法的時間復(fù)雜度。
雖然節(jié)點(diǎn)軌跡標(biāo)簽的副本更新方法可以減少消息傳播數(shù)量,但是由于其在報(bào)文的頭部增加了節(jié)點(diǎn)地址信息,消息報(bào)文變長,添加的地址鏈表長度是網(wǎng)絡(luò)節(jié)點(diǎn)的度數(shù)和消息傳播輪數(shù)的遞增量。為了減少地址鏈表的長度,改進(jìn)直接存儲節(jié)點(diǎn)地址鏈表的軌跡標(biāo)簽方法,設(shè)計(jì)了用Bloom Filter優(yōu)化地址鏈表軌跡標(biāo)簽無結(jié)構(gòu)P2P副本一致性維護(hù)方法。Bloom Filter是一種簡潔的用來表示集合、支持集合元素查詢的結(jié)構(gòu),它對集合中元素的表示只需要少數(shù)幾個比特。
優(yōu)化后方法其傳輸消息報(bào)文如圖4所示一部分是用固定長度的BloomFilter結(jié)構(gòu)(0、1串)表示的地址鏈表,另一部分是副本更新消息。
消息報(bào)文用固定長度的Bloom Filter結(jié)構(gòu)(0,1位串)代替原來的IP地址鏈軌跡標(biāo)簽(即附加到更新消息的地址軌跡標(biāo)簽用固定長度的Bloom Filter結(jié)構(gòu)以0,1位串表示),同時每個節(jié)點(diǎn)保存一個用同樣長度Bloom Filter表示的節(jié)點(diǎn)地址掩碼。
Bloom Filter優(yōu)化地址鏈表軌跡標(biāo)簽無結(jié)構(gòu)P2P副本一致性維護(hù)方法其具體方法實(shí)施流程如圖5所示,包括三個主要步驟步驟1產(chǎn)生新的用Bloom Filter表示用于添加到報(bào)文中的地址軌跡標(biāo)簽。收到副本更新消息的節(jié)點(diǎn)首先檢查自己是否為第一次收到更新消息,如果是第一次收到更新消息,就發(fā)起一輪新的傳輸。其產(chǎn)生新的軌跡標(biāo)簽過程為1)老標(biāo)簽剝離收到副本更新消息的節(jié)點(diǎn)從傳輸消息報(bào)文頭部得到用BloomFilter表示的地址軌跡標(biāo)簽,2)新標(biāo)簽產(chǎn)生通過將老的地址軌跡標(biāo)簽與本輪傳輸每個目標(biāo)鄰居節(jié)點(diǎn)的用Bloom Filter表示的節(jié)點(diǎn)地址掩碼進(jìn)行“或”運(yùn)算,如圖6所示,得到的新的附加到更新消息傳輸報(bào)文中的地址軌跡標(biāo)簽。
步驟2判斷目標(biāo)鄰居節(jié)點(diǎn)是否需要發(fā)送更新消息。通過檢查接收到的副本更新消息報(bào)文的地址軌跡標(biāo)簽是否包含目標(biāo)鄰居節(jié)點(diǎn)來判斷是否向該鄰居節(jié)點(diǎn)發(fā)送更新消息,如果包含,說明此鄰居節(jié)點(diǎn)已經(jīng)得到更新消息,不向此節(jié)點(diǎn)發(fā)送,否則就向此節(jié)點(diǎn)發(fā)送。其具體的操作和基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法中通過直接查找線性鏈表的運(yùn)算不同。改進(jìn)方法判斷一個鄰居點(diǎn)是否已經(jīng)接收過更新,其查詢運(yùn)算過程只需要將該鄰居節(jié)點(diǎn)地址掩碼和軌跡標(biāo)簽掩碼進(jìn)行“或”運(yùn)算,得到新軌跡掩碼,再將新軌跡掩碼和老軌跡掩碼進(jìn)行比較,如果新軌跡掩碼和老軌跡掩碼不同,表明該鄰居沒有記錄到標(biāo)簽中,就將更新消息發(fā)到該鄰節(jié)點(diǎn)。
步驟3發(fā)送副本更新消息。將消息報(bào)文中的地址軌跡標(biāo)簽用步驟1產(chǎn)生的新標(biāo)簽替代,發(fā)送到步驟2得到的需要發(fā)送副本更新消息的鄰居節(jié)點(diǎn)。
用Bloom Filter結(jié)構(gòu)代替節(jié)點(diǎn)地址鏈表,有兩點(diǎn)好處1)添加到消息報(bào)文的附加信息減少;2)檢查節(jié)點(diǎn)是否在軌跡標(biāo)簽過程運(yùn)算十分簡單,只需要“或”運(yùn)算,計(jì)算簡單,實(shí)施方便。但是用Bloom Filter代替直接傳送的地址鏈,進(jìn)行節(jié)點(diǎn)地址查詢時會有一定的誤差,這是由于Bloom Filter查詢會出現(xiàn)少量的假陽性錯誤,導(dǎo)致判斷時,鄰節(jié)點(diǎn)沒有接收更新消息而被誤認(rèn)為已經(jīng)接收而減少了更新的覆蓋度,下面分析Bloom Filter查詢所引起的假陽性概率對算法的影響。式(1)是Bloom Filter假陽性概率f=(1-p)k=exp(kln(1-e-kn/m)) (1)k為每個節(jié)點(diǎn)地址需要映射到Bloom Filter位向量中的位數(shù),n為節(jié)點(diǎn)數(shù),m為Bloom Filter長度。可能產(chǎn)生的判斷錯誤節(jié)點(diǎn)數(shù)為E=f·n=exp(kln(1-e-kn/m))·n(2)通過對Bloom Filter產(chǎn)生錯誤判斷進(jìn)行評估,使用時根據(jù)可能的副本節(jié)點(diǎn)規(guī)模n和選定的哈希函數(shù)個數(shù)k選擇相應(yīng)長度m的Bloom Filter就可以保證不發(fā)生節(jié)點(diǎn)查詢的誤判斷,從而得到網(wǎng)絡(luò)軌跡標(biāo)簽的Bloom Filter表示。
使用Bloom Filter可大大減少附加到報(bào)文的節(jié)點(diǎn)地址信息長度假設(shè)節(jié)點(diǎn)規(guī)模N=1000,平均節(jié)點(diǎn)度k=10,傳輸6輪后,以最壞的情況考慮,此時需要標(biāo)志的節(jié)點(diǎn)為60個節(jié)點(diǎn),需要512位(64字節(jié))Bloom Filter表示。若直接采用IP地址存儲同樣多的節(jié)點(diǎn)地址鏈,需要240個字節(jié),用Bloom Filter大大減少了附加到報(bào)文中的地址信息長度,而且判斷IP地址是否在地址軌跡標(biāo)簽的操作更簡單(“或”運(yùn)算)。圖7比較了用Bloom Filter表示的節(jié)點(diǎn)軌跡標(biāo)簽和直接用地址鏈表表示節(jié)點(diǎn)軌跡標(biāo)簽方法所需存儲字節(jié)數(shù)(其中Bloom Filter的長度取式(2)中不出現(xiàn)判斷錯誤時的長度),橫坐標(biāo)表示需要附加到報(bào)文的節(jié)點(diǎn)地址個數(shù),發(fā)現(xiàn)隨著節(jié)點(diǎn)個數(shù)增加,Bloom Filter表示的軌跡標(biāo)簽和直接用IP地址鏈表表示的軌跡算法相比,加到報(bào)文的標(biāo)簽軌跡長度明顯減少。
圖8顯示了本發(fā)明方法和傳統(tǒng)的無結(jié)構(gòu)P2P網(wǎng)絡(luò)副本一致性維護(hù)副本傳輸開銷比較。其中P2P網(wǎng)絡(luò)的拓?fù)鋱D是用BRITE產(chǎn)生的節(jié)點(diǎn)規(guī)模N=100,平均度為d=20的BA網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)副本節(jié)點(diǎn)規(guī)模選擇100是因?yàn)殡m然P2P網(wǎng)絡(luò)中副本節(jié)點(diǎn)規(guī)模隨著文件副本放置策略和文件的熱點(diǎn)程度而有不同的文件副本節(jié)點(diǎn)覆蓋率,就Gnutella網(wǎng)絡(luò)來說,80%的請求指向的文件的副本數(shù)目是80,副本的平均覆蓋率為網(wǎng)絡(luò)總節(jié)點(diǎn)數(shù)的1%,當(dāng)前系統(tǒng)的副本規(guī)模大約為100節(jié)點(diǎn)。橫坐標(biāo)是使用Gossip算法每輪選擇進(jìn)一步轉(zhuǎn)發(fā)的節(jié)點(diǎn)比率f。顯然洪泛法Flooding和基于節(jié)點(diǎn)軌跡標(biāo)簽的一致性維護(hù)算法沒有參數(shù)f,但是為了比較方便,還是畫到圖中,用直線表示。從圖8中發(fā)現(xiàn)本發(fā)明方法改進(jìn)的洪泛法(Flooding)和改進(jìn)的謠言法(Gossip)其副本傳輸開銷(副本更新消息數(shù)目)大大減少,這正是本發(fā)明方法在消息傳輸源頭進(jìn)行冗余判斷的最大優(yōu)點(diǎn)。
圖9是用BRITE產(chǎn)生的節(jié)點(diǎn)規(guī)模N從100~1000,節(jié)點(diǎn)度d=20的BA網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),比較更新消息傳輸?shù)目傋止?jié)數(shù)。橫坐標(biāo)代表的是節(jié)點(diǎn)規(guī)模,縱坐標(biāo)是各種算法的傳輸總字節(jié)數(shù)。
圖9(a)(b)(c)分別比較了消息數(shù)據(jù)包長度為1024、1518和5000字節(jié)時,比較的是更新消息的總字節(jié)數(shù)。直接使用地址軌跡標(biāo)簽法,由于捎帶的地址節(jié)點(diǎn)數(shù)目較大,傳輸?shù)目傋止?jié)數(shù)較大,而用Bloom Filter表示節(jié)點(diǎn)軌跡標(biāo)簽改進(jìn)的Gossip算法的消息傳輸總字節(jié)數(shù)最少,可大大節(jié)約傳輸更新消息的帶寬。當(dāng)更新消息數(shù)據(jù)長度為5000字節(jié),節(jié)點(diǎn)規(guī)模N=1000,f=0.6時,使用BloomFilter優(yōu)化表示節(jié)點(diǎn)軌跡標(biāo)簽改進(jìn)的Gossip算法附加到消息報(bào)文的節(jié)點(diǎn)軌跡標(biāo)簽總字節(jié)比直接用IP地址表示的軌跡標(biāo)簽算法減少91.9%;所傳輸消息總字節(jié)數(shù)比洪泛法減少51.3%,比純Gossip減少13%。當(dāng)節(jié)點(diǎn)規(guī)模N=100,f=0.6時,Bloom Filter表示節(jié)點(diǎn)軌跡標(biāo)簽改進(jìn)的Gossip算法傳輸總字節(jié)比Gossip減少40.9%,遠(yuǎn)大于N=1000時節(jié)約帶寬的百分比,這是因?yàn)椋危?00,d=20圖的連通性比N=1000,d=20的連通性強(qiáng),所以節(jié)點(diǎn)軌跡標(biāo)簽算法在消息傳輸總字節(jié)數(shù)(即占用網(wǎng)絡(luò)帶寬)上改進(jìn)越明顯。
由上可知,本發(fā)明是無結(jié)構(gòu)分散式P2P網(wǎng)絡(luò)副本一致性維護(hù)方法,該發(fā)明方法研究從新的視角來控制一致性維護(hù)的冗余消息,通過更改傳輸消息報(bào)文來控制冗余產(chǎn)生,提出基于節(jié)點(diǎn)軌跡標(biāo)簽的一致性維護(hù)方法,本發(fā)明方法在傳輸?shù)南?bào)文頭部添加已獲更新節(jié)點(diǎn)的軌跡標(biāo)簽,在發(fā)送消息的源頭進(jìn)行冗余判斷,大大減少冗余消息在已經(jīng)更新的節(jié)點(diǎn)內(nèi)再次傳播。為了減少附加到報(bào)文中的節(jié)點(diǎn)地址的長度,用Bloom Filter優(yōu)化地址軌跡標(biāo)簽的表示和查找。通過實(shí)驗(yàn)驗(yàn)證,本發(fā)明方法實(shí)現(xiàn)時計(jì)算查找簡單,只需要用“或”運(yùn)算,可以大大減少副本冗余傳輸消息數(shù)目,降低了副本一致性維護(hù)代價,增強(qiáng)P2P網(wǎng)絡(luò)的可擴(kuò)展性,為P2P網(wǎng)絡(luò)開展動態(tài)文件更新的新業(yè)務(wù)提供保障。


圖1是洪泛方法和節(jié)點(diǎn)軌跡標(biāo)簽方法;圖2是添加節(jié)點(diǎn)軌跡標(biāo)簽的消息報(bào)文結(jié)構(gòu);圖3是基于節(jié)點(diǎn)軌跡標(biāo)簽無結(jié)構(gòu)P2P副本一致性維護(hù)方法;圖4是用Bloom Filter表示的節(jié)點(diǎn)軌跡消息報(bào)文結(jié)構(gòu);圖5是用Bloom Filter表示節(jié)點(diǎn)軌跡的一致性維護(hù)方法;圖6是Bloom Filter計(jì)算;圖7是Bloom Filter節(jié)點(diǎn)標(biāo)簽和節(jié)點(diǎn)地址鏈表標(biāo)簽所用字節(jié)比較;圖8是N=100,d=20BA拓?fù)浣Y(jié)構(gòu)副本傳輸開銷比較,圖例Pure_Flooding是純洪泛方法,IP_List_Flooding基于節(jié)點(diǎn)軌跡方法改進(jìn)的洪泛方法,Gossip是純謠言方法,IP_List_Gossip是用節(jié)點(diǎn)軌跡法改進(jìn)的謠言方法;圖9是消息傳輸總字節(jié)比較,其中(a)消息長度1024字節(jié),(b)消息長度1518字節(jié),(c)消息長度5000字節(jié),圖例Pure_Flooding是純洪泛方法,IP_List_Flooding是基于節(jié)點(diǎn)軌跡方法改進(jìn)的洪泛方法,Gossip_0.6是轉(zhuǎn)發(fā)節(jié)點(diǎn)比率為0.6的純謠言方法,IP_List_Gossip_0.6基于節(jié)點(diǎn)軌跡方法改進(jìn)的轉(zhuǎn)發(fā)節(jié)點(diǎn)比率為0.6的謠言方法,IP_List_Bloom是Bloom Filter表示節(jié)點(diǎn)軌跡標(biāo)簽改進(jìn)的洪泛法,IP_List_Gossip_0.6_Bloom是Bloom Filter表示節(jié)點(diǎn)軌跡標(biāo)簽改進(jìn)的謠言方法。
具體實(shí)施例方式
本發(fā)明作為一種無結(jié)構(gòu)P2P副本一致性維護(hù)方法,具有一定的通用性,并且可以通過應(yīng)用該方法的思想直接改進(jìn)現(xiàn)有的一致性維護(hù)方法??蓱?yīng)用于無結(jié)構(gòu)P2P系統(tǒng)副本維護(hù),無線網(wǎng)絡(luò)多副本節(jié)點(diǎn)的資源維護(hù),復(fù)雜網(wǎng)絡(luò)中病毒免疫傳輸維護(hù)等其他自組織網(wǎng)絡(luò)或分布式存儲系統(tǒng)中數(shù)據(jù)的一致性維護(hù)。其具體的實(shí)施分為一個預(yù)備步驟和三個實(shí)施步驟預(yù)備步驟大概評估資源副本節(jié)點(diǎn)網(wǎng)絡(luò)規(guī)模,得出用于表示節(jié)點(diǎn)軌跡標(biāo)簽的Bloom Filter長度和哈希函數(shù)個數(shù)。
E=f·n=exp(kln(1-e-kn/m))·nk為每個節(jié)點(diǎn)地址需要映射到Bloom Filter中的位數(shù),n為節(jié)點(diǎn)數(shù),m為Bloom Filter長度,E表示可能產(chǎn)生的判斷錯誤節(jié)點(diǎn)數(shù)。根據(jù)評估的副本節(jié)點(diǎn)規(guī)模n和選定的哈希函數(shù)個數(shù)k選擇相應(yīng)長度m的Bloom Filter就可以保證不發(fā)生節(jié)點(diǎn)查詢的誤判斷,從而得到網(wǎng)絡(luò)軌跡標(biāo)簽的Bloom Filter表示。
步驟1產(chǎn)生新的用Bloom Filter表示用于添加到報(bào)文中的地址軌跡標(biāo)簽。
收到副本更新消息的節(jié)點(diǎn)首先檢查自己是否為第一次收到更新消息,如果是第一次收到更新消息,就發(fā)起一輪新的傳輸。其產(chǎn)生新的軌跡標(biāo)簽過程為1)老標(biāo)簽剝離收到副本更新消息的節(jié)點(diǎn)從傳輸消息報(bào)文頭部得到用Bloom Filter表示的地址軌跡標(biāo)簽,2)新標(biāo)簽產(chǎn)生通過將老的地址軌跡標(biāo)簽與本輪傳輸每個目標(biāo)鄰居節(jié)點(diǎn)的用Bloom Filter表示的節(jié)點(diǎn)地址掩碼進(jìn)行“或”運(yùn)算,得到的新的附加到更新消息傳輸報(bào)文中的地址軌跡標(biāo)簽。
步驟2判斷目標(biāo)鄰居節(jié)點(diǎn)是否需要發(fā)送更新消息。
通過檢查接收到的副本更新消息報(bào)文的地址軌跡標(biāo)簽是否包含目標(biāo)鄰居節(jié)點(diǎn)來判斷是否向該鄰居節(jié)點(diǎn)發(fā)送更新消息,如果包含,說明此鄰居節(jié)點(diǎn)已經(jīng)得到更新消息,不向此節(jié)點(diǎn)發(fā)送,否則就向此節(jié)點(diǎn)發(fā)送。判斷一個鄰居點(diǎn)是否已經(jīng)接收過更新,其查詢運(yùn)算過程只需要將該鄰居節(jié)點(diǎn)地址掩碼和軌跡標(biāo)簽掩碼進(jìn)行“或”運(yùn)算,得到新軌跡掩碼,再將新軌跡掩碼和老軌跡掩碼進(jìn)行比較,如果新軌跡掩碼和老軌跡掩碼不同,表明該鄰居沒有記錄到標(biāo)簽中,就將更新消息發(fā)到該鄰節(jié)點(diǎn)。
步驟3發(fā)送副本更新消息。將消息報(bào)文中的地址軌跡鏈表標(biāo)簽用步驟1產(chǎn)生的新標(biāo)簽替代,發(fā)送到步驟2得到的需要發(fā)送副本更新消息的鄰居節(jié)點(diǎn)。
權(quán)利要求
1.一種基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,其特征在于,該方法是通過直接更改消息傳輸報(bào)文,在消息報(bào)文中添加已經(jīng)接收到更新消息的節(jié)點(diǎn)地址軌跡標(biāo)簽,將已經(jīng)獲得更新的節(jié)點(diǎn)地址信息作為更新消息的一部分進(jìn)行傳輸,當(dāng)需要發(fā)起新消息傳輸時,借助節(jié)點(diǎn)軌跡標(biāo)簽,消息傳輸源節(jié)點(diǎn)完成傳輸過程中的消息冗余判斷,大大減少副本更新消息的傳輸開銷,斷絕副本更新傳輸消息循環(huán)傳輸?shù)目赡堋?br> 2.根據(jù)權(quán)利要求1所述基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,其特征在于,它還包括利用Bloom Filter優(yōu)化節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)副本一致性維護(hù)方法,即利用Bloom Filter數(shù)據(jù)結(jié)構(gòu)表示地址軌跡標(biāo)簽和節(jié)點(diǎn)地址掩碼,簡化節(jié)點(diǎn)軌跡表示和鄰居節(jié)點(diǎn)是否在軌跡中的查詢判斷。
3.根據(jù)權(quán)利要求2所述基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,其特征在于,附加到更新消息的地址軌跡標(biāo)簽固定長度的Bloom Filter結(jié)構(gòu)以0,1位串表示,同時每個節(jié)點(diǎn)保存一個用同樣長度Bloom Filter表示的節(jié)點(diǎn)地址掩碼,借助Bloom Filter進(jìn)行節(jié)點(diǎn)地址查詢時會有一定的誤差,可能產(chǎn)生的Bloom Filter判斷出錯的節(jié)點(diǎn)數(shù)為E=f·n=exp(kln(1-e-kn/m))·nk為每個節(jié)點(diǎn)地址需要映射到Bloom Filter中的位數(shù),n為副本節(jié)點(diǎn)規(guī)模,m為Bloom Filter長度,使用時只需要根據(jù)可能的副本節(jié)點(diǎn)規(guī)模n和選定的哈希函數(shù)個數(shù)k選擇相應(yīng)長度m的Bloom Filter就可以保證不發(fā)生節(jié)點(diǎn)查詢的誤判斷。
4.根據(jù)權(quán)利要求3所述基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,其特征在于,產(chǎn)生新節(jié)點(diǎn)軌跡標(biāo)簽的運(yùn)算過程和鄰居節(jié)點(diǎn)是否在節(jié)點(diǎn)軌跡標(biāo)簽查詢判斷的運(yùn)算可采用簡單的硬件可支持的“或”運(yùn)算。
5.根據(jù)權(quán)利要求1、2、3或4所述基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,其特征是,每輪消息傳輸時發(fā)送的更新消息報(bào)文附加新的節(jié)點(diǎn)軌跡標(biāo)簽,消息報(bào)文被發(fā)送到經(jīng)采用所述“或”運(yùn)算檢查合格的目標(biāo)節(jié)點(diǎn)。
全文摘要
一種基于節(jié)點(diǎn)軌跡標(biāo)簽的無結(jié)構(gòu)P2P副本一致性維護(hù)方法,它通過在消息報(bào)文中添加已經(jīng)接收到更新消息的節(jié)點(diǎn)地址軌跡標(biāo)簽,利用此標(biāo)簽在消息傳輸源頭完成傳輸過程中的消息冗余判斷,控制冗余消息傳輸,減少冗余副本更新消息數(shù)量,斷絕副本更新消息傳輸循環(huán)。還用Bloom Filter優(yōu)化地址鏈表示和節(jié)點(diǎn)地址查找,減少添加到報(bào)文中的軌跡長度,同時簡化傳輸節(jié)點(diǎn)的冗余判斷。該發(fā)明可大大降低冗余消息數(shù)目,提高P2P系統(tǒng)的可擴(kuò)展性,副本節(jié)點(diǎn)網(wǎng)絡(luò)連通性越強(qiáng),消息數(shù)目和傳輸帶寬減少越明顯。本發(fā)明可用于無結(jié)構(gòu)P2P副本維護(hù)、無線網(wǎng)絡(luò)資源副本維護(hù)、復(fù)雜網(wǎng)絡(luò)病毒免疫傳輸維護(hù)等其他自組織網(wǎng)絡(luò)或分布式存儲系統(tǒng)資源一致性維護(hù)中。
文檔編號H04L12/28GK1881898SQ20061003164
公開日2006年12月20日 申請日期2006年5月12日 優(yōu)先權(quán)日2006年5月12日
發(fā)明者謝鯤, 張大方, 謝高崗, 文吉剛 申請人:湖南大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
扎赉特旗| 临清市| 应城市| 沧源| 高唐县| 二连浩特市| 永嘉县| 萨嘎县| 上杭县| 通城县| 泸州市| 尼木县| 芜湖市| 株洲市| 盐边县| 黄冈市| 威远县| 长春市| 沧源| 当涂县| 吉安市| 嘉义县| 尖扎县| 津市市| 迭部县| 洞头县| 休宁县| 镇雄县| 博客| 宁夏| 陵水| 通化县| 喀喇沁旗| 宜黄县| 松原市| 南阳市| 台北市| 龙井市| 青田县| 巴东县| 文登市|