新四季網

P2P網絡中有效消解多Sybil節點滲透衝突的方法

2023-05-12 18:03:21

P2P網絡中有效消解多Sybil節點滲透衝突的方法
【專利摘要】本發明公開了一種P2P網絡中有效消解多Sybil節點滲透衝突的方法,目的是解決Sybil節點向Kademlia進行滲透的過程中因出現節點間滲透衝突而導致整體滲透效能下降的問題。技術方案是通過劃分滲透區域和對Sybil節點進行編組,實現分區域滲透,避免各組Sybil節點間發生滲透衝突;通過為Sybil節點合理分配節點的標識,避免組內Sybil節點間發生效能衝突。採用本發明可以提高多個Sybil節點的總體滲透效能,避免多個Sybil節點在向Kademlia網絡進行無序滲透時造成的資源浪費和效能流失,且可使Sybil節點在Kademlia網絡動態變化過程中保證其滲透效能。
【專利說明】P2P網絡中有效消解多Sybi I節點滲透衝突的方法
【技術領域】
[0001]本發明涉及提高多Sybil節點對Kademlia網絡滲透效能的方法,尤指Kademlia網絡中有效消解多Sybil節點滲透衝突的方法。
【背景技術】
[0002]Kademlia是美國紐約大學的Petar Maymounkov等人於2002年提出的一種結構化P2P協議;基於Kademlia協議構建的P2P網絡稱為Kademlia網絡。Kademlia協議是一種典型的DHT (Distributed Hash Table,分布哈希表)協議,廣泛用於構建大規模、純分布式P2P (Peer to Peer)網絡,如電驢、BitTorrent等。Kademlia給每個節點分配一個唯一、隨機的節點標識,即nodeID ;為每個對象分配一個類似的對象標識,即objectID(又稱為key)。這些標識通常使用SHA-1這種單向散列函數來生成,ID之間的距離採用異或運算來度量。
[0003]在Kademlia網絡中,每個對象都存儲在節點標識最接近其對象標識的K個節點上。K是一個常數,一般取值為20。
[0004]每個Kademlia節點的路由表由L(L等於節點標識的比特位數,通常取值為128)個鍊表組成,每個鍊表稱為一個「K-bucket」,用於記錄網絡中到自己的異或距離在區間[21, 2i+1) (i為K-bucket的序號,O≤i < L)內的鄰居節點的信息,每條信息以三元組形式表示和存儲。Kademlia協議規定,K-bucket長度以K為上限。每當Kademlia節點收到來自其他節點的消息,它就根據該消息發送節點到自己的異或距離以及消息中的信息來更新K-bucket中的記錄,這稱為捎帶確認(piggybacking)。L個K-bucket組成一個Kademlia節點的路由表,因此路由表也稱「K-buckets」。一個路由表中的L個K-bucket通過連續的序號i區分。
[0005]Kademlia協議由四個RPC(Remote Process Call,遠程過程調用,是一種命令)組成,其名稱分別是PING,STORE, FIND_N0DE, FIND_VALUE,它們的工作如下所示:
[0006]PING:探測一個節點是否在線;
[0007]STORE:指示一個節點存儲一個對,以便於將來的數據獲取。key為對象散列值,即obiectID, value為真正的數據對象(或其索引);
[0008]FIND_N0DE:以 ID 為參數,FIND_N0DE RPC 的接收者以 的形式返回他所知的離目標ID最近的K個節點;
[0009]FIND_VALUE:以 key 為參數,尋找 key 對應的 value。
[0010]Sybil節點原指具有多重身份的單個實體節點,目前通常將網絡中的虛假節點都稱為Sybil節點。對於Kademlia網絡中的Sybil節點,其重要性主要體現為能夠成為多少節點的鄰居節點,即該Sybil節點的入度大小。快速提高Sybil節點的重要性,有助於利用Sybil節點更多、更高效地獲知網絡中大量節點的活動情況,從而為快速發現和遏制網絡中的惡意活動提供技術支撐。
[0011]Sybil節點重要性的提升,主要依賴於儘可能多的將自身加入到Kademlia網絡節點的路由表中,即滲透。但是,在滲透的過程中,多個Sybil節點可能會進入同一個Kademlia節點的同一個K-bucket中;當該節點在該K-bucket進行某些網絡活動時,報文會同時發送到多個Sybil節點。這樣,一個節點的活動被多個Sybil節點所感知,實質上造成了感知能力的冗餘。這種情況稱為Sybil節點之間的滲透衝突,滲透衝突引起滲透效能的下降。由於Kademlia網絡規模一般都較大,Sybil節點的數量和性能有限,因此應當儘量避免滲透效能發生衝突的情況,以提高多個Sybil節點的整體滲透效能。
[0012]P2P網絡爬蟲是指用於獲取P2P網絡中各個節點信息及其拓撲結構的軟體系統。這種軟體系統通過迭代地向P2P網絡中的已知節點發送特定消息,獲得新的節點;再重複向新的節點發送特定消息,就可以獲得整個網絡的拓撲結構和各個節點信息。P2P網絡爬蟲能夠用於獲取Kademlia網絡的節點信息和拓撲結構。
[0013]目前尚沒有針對Kademlia網絡消除Sybil節點滲透衝突的方法的公開報導。

【發明內容】

[0014]本發明要解決的技術問題在於:針對多個Sybil節點在向Kademlia進行滲透的過程中,可能因出現節點間滲透衝突而導致整體滲透效能下降的問題,提出Kademlia網絡中有效消解多Sybil節點滲透衝突的一種方法,使多個Sybil節點通過避免相互之間的滲透衝突而優化整體滲透效能。
[0015]為解決上述技術問題,本發明的技術方案為:通過劃分滲透區域和對Sybil節點進行編組,實現分區域滲透,避免各組Sybil節點間發生滲透衝突;通過為Sybil節點合理分配節點的標識nodeID,避免組內Sybil節點間發生效能衝突,nodeID為L比特,L為正整數,通常取值為128。
[0016]對於nodeID為L 比特的Kademlia網絡來說,節點標識空間為2L,Sybil節點的數量可設置為q.2H 「.」表示乘法運算,q為整數,一般取值為5)。本發明具體步驟如下:
[0017]第一步,劃分滲透區域。將整個Kademlia網絡節點標識空間平均劃分為2q個滲透區域,此時這些滲透區域可表示為{?.2ιΛ (」+1)20)|0≤_]_≤2<1-1,」為整數},其中每個元素是一個區間,每個元素中的整數對應滲透區域中的節點標識,記[j.2L-\ (j+l)2L-q)為第j號滲透區域。
[0018]第二步,Sybil節點編組。將所有Sybil節點編為2q個組,每組q個Sybil節點,並依次用O到(2[1)這2^個整數作為組號。
[0019]第三步,設置Sybil節點的標識nodeID。對於組號為P (O2q-l)的Sybil節點編組,將集合{ (P ? 2「) I O < a < q-1,a為整數} ( φ表示異或運算,通過2a與組號p的異或運算來區分距離,確保組內不同的Sybi I節點出現在Kademl ia節點的不同K-bucket中)中的這q個值作為nodeID分配給組內的q個Sybil節點。
[0020]第四步,通過P2P網絡爬蟲(如開源的Emule客戶端程序、Nutch、Crawler4j等)獲得整個Kademlia網絡中所有節點的路由表,即每個節點的鄰居節點的,並通過路由表獲得每個節點的節點度d(即節點的路由表中鄰居節點的個數)。
[0021]第五步,對2^個滲透區域中的節點,分別按照節點度d的大小進行降序排列,形成2q個列表,其中每個列表稱為對應滲透區域的節點降序列表;依次將第j號滲透區域的節點降序列表發送給組號為j的Sybil編組中的每個Sybil節點,具體步驟如下:[0022]5.1令」=0。
[0023]5.2將j號滲透區域的節點降序列表發送給組號為j的Sybil編組中的q個Sybil節點。
[0024]5.3j = j+1 ο
[0025]5.4判斷j是否等於2%如果等於,則轉第六步,否則,轉5.2)。第六步,設置全局計數器Ne,並為每個Sybil節點設置一個局部計數器隊(O≤r≤q.2M),Ng,Nr都初始化為0,所有Sybil節點並行執行如下步驟:
[0026]6.1向第五步中收到的節點降序列表中的首節點發送PING探測命令,然後將該首節點從節點降序列表中刪除。
[0027]6.2判斷節點降序列表是否為空。如果為空,Nr = Nr+1,NG = NG+1並轉第6.3步;否則,轉第6.1步。
[0028]6.3查詢是否所有Sybil節點都完成了步驟6.1-6.2,即判斷Ne是否等於q.2q。是,則轉第七步;否則執行一個空操作後轉6.3。
[0029]第七步,設置計時器為T小時,T可取值為6。
[0030]第八步,間歇t秒,t可取值為5。
[0031]第九步,判斷是否從系統進程接收到結束指令:是,轉第十一步;否則轉第十步;
[0032]第十步,判斷是否計時器時間用完:是,轉第四步;否,轉第八步。
[0033]第^^一步,結束。
[0034]採用本發明可以達到以下技術效果:
[0035]通過在第一步和第二步中對Kademlia網絡節點和Sybil節點進行科學分組,並在第三步中合理設置各個Sybil節點的nodeID值,有效地消解了多個Sybil節點之間的滲透衝突,提高了多個Sybil節點的總體滲透效能,避免了多個Sybil節點在向Kademlia網絡進行無序滲透時造成的資源浪費和效能流失。通過在第四步獲得網絡中各節點最新的路由表,可以使得Sybil節點在Kademlia網絡動態變化的過程中,仍然能夠保證其滲透效能。
【專利附圖】

【附圖說明】
[0036]圖1為本發明的總流程圖。
【具體實施方式】
[0037]1、劃分滲透區域。將整個Kademlia網絡節點標識空間平均劃分為2q個滲透區域,此時這些滲透區域可表示為{[j.2ιΛ (j+l)2L-<1) |0≤j < 2q,j為整數},其中每個元素是一個區間,每個元素中的整數對應滲透區域中的節點標識,記[j.2L-\ (j+ld為第j號滲透區域。
[0038]2、Sybil節點編組。將所有Sybil節點編為2q個組,每組q個Sybil節點,並依次用O到(211)這2^個整數作為組號。
[0039]3、設置Sybil節點的標識nodeID。對於組號為p (O≤p≤2q-l)的Sybil節點編組,將集合{ (P ? 2「).2^ I O≤a < q,a為整數} ( ?表示異或運算,通過2a與組號p的異或運算來區分距離,確保組內不同的Sybil節點出現在Kademlia節點的不同K-bucket中)中的這q個值作為nodeID分配給組內的q個Sybil節點。[0040]4、通過P2P網絡爬蟲(如開源的Emule客戶端程序、Nutch、Crawler4j等)獲得整個Kademlia網絡中節點的路由表,即鄰居節點的。
[0041]5、對2^個滲透區域中的節點,分別按照節點度d的大小進行降序排列,形成2^個列表,其中每個列表稱為對應滲透區域的節點降序列表;依次將第j號滲透區域的節點降序列表發送給組號為j的Sybil編組中的每個Sybil節點。
[0042]6、設置全局計數器Ne,並為每個Sybil節點設置一個局部計數器Nr (O 2M),Ng, Nr都初始化為0,所有Sybil節點並行執行如下步驟:
[0043]6.1向步驟5中收到的節點降序列表中的首節點發送PING命令,然後將該首節點從節點降序列表中刪除。
[0044]6.2判斷節點降序列表是否為空。如果為空,Nr = Nr+1, Ng = Ng+I並轉步驟6.3 ;否則,轉步驟6.1。
[0045]6.3查詢是否所有Sybil節點都完成了步驟6.1-6.2,即判斷Ne是否等於q.2q。是,則轉步驟7 ;否則執行一個空操作後轉6.3。
[0046]7、設置計時器為T小時,T可取值為6。
[0047]8、間歇t秒,t可取值為5。
[0048]9、判斷是否從系統進程接收到結束指令:是,轉步驟11 ;否則轉步驟10 ; [0049]10、判斷是否計時器時間用完:是,轉步驟4 ;否,轉步驟8。
[0050]11、結束。
【權利要求】
1.一種P2P網絡中有效消解多Sybil節點滲透衝突的方法,其特徵在於包括以下步驟: 第一步,劃分滲透區域Jf-AKademlia網絡節點標識空間平均劃分為2q個滲透區域,這些滲透區域表示為{[j.2^, (j+ld |0≤j < 2' j為整數},其中每個元素是一個區間,每個元素中的整數對應滲透區域中的節點標識,記[j.2L-\ (j+ld為第j號滲透區域;Kademlia網絡節點標識稱為nodeID, nodeID為L比特的Kademlia網絡的節點標識空間為2S L為正整數,Sybil節點的數量為q.2%「.」表示乘法運算,q為整數; 第二步,Sybil節點編組:將所有Sybil節點編為2q個組,每組q個Sybil節點,並依次用O到2^-1這2^個整數作為組號; 第三步,設置Sybil節點的標識nodeID:對於組號為p的Sybil節點編組,O≤P≤2^-1,將集合!(P十2a).2?0≤a < q,a為整數}中的這q個值作為nodeID分配給組內的q個Sybil節點;Θ表示異或運算,通過2a與組號P的異或運算來區分距離,確保組內不同的Sybil節點出現在Kademlia節點的不同K_bucket中;每個Kademlia節點的路由表由L個鍊表組成,每個鍊表稱為一個「K-bucket」,用於記錄網絡中到自己的異或距離在區間[21,2i+1)內的鄰居節點的信息,i為K-bucket的序號,O≤i < M ;每條信息以三元組形式表示和存儲,K-bucket長度以K為上限,K是一個常數;每當Kademlia節點收到來自其他節點的消息,它就根據該消息發送節點到自己的異或距離以及消息中的信息來更新K-bucket中的記錄,這稱為捎帶確認piggybacking山個K-bucket組成一個Kademlia節點的路由表,路由表也稱「K-buckets」, 一個路由表中的L個K-bucket通過連續的序號i區分; 第四步,通過P2P網絡爬蟲獲得整個Kademlia網絡中所有節點的路由表,即鄰居節點的,並通過路由表獲得每個節點的節點度d,節點度指節點的路由表中鄰居節點的個數,即節點的路由表中的表項數; 第五步,對個滲透區域中的節點,分別按照節點度d的大小進行降序排列,形成2^個列表,其中每個列表稱為對應滲透區域的節點降序列表;將第j號滲透區域的節點降序列表發送給組號為j的Sybil編組中的每個Sybil節點,具體步驟如下:
.5.1 令 j = O ; .5.2將j號滲透區域的節點降序列表發送給組號為j的Sybil編組中的q個Sybil節佔.5.3j = j+1 ; .5.4判斷j是否等於2%如果等於,則轉第六步,否則,轉5.2); 第六步,設置全局計數器Ne,並為每個Sybil節點設置一個局部計數器隊,O≤r≤q.2q-l, Ng, Nr都初始化為0,所有Sybil節點並行執行如下步驟: .6.1向收到的節點降序列表中的首節點發送PING探測命令,然後將該首節點從節點降序列表中刪除;PING探測命令是Kademlia協議中的一種遠程過程調用; .6.2判斷節點降序列表是否為空,如果為空,N, = Nr+1,NG = Ng+1並轉第6.3步;否則,轉第6.1步; .6.3判斷Ne是否等於q.2%是,轉第七步;否則執行一個空操作後轉6.3 ; 第七步,設置計時器為T小時,T取值為6 ;第八步,間歇t秒,t取值為5; 第九步,判斷是否從系統進程接收到結束指令:是,轉第十一步;否則轉第十步; 第十步,判斷是否計時器時間用完:是,轉第四步;否,轉第八步。 第H^一步,結束。
2.如權利要求1所述的P2P網絡中有效消解多Sybil節點滲透衝突的方法,其特徵在於所述L取值為128,q 取值為5,K取值為20。
【文檔編號】H04L29/08GK104038547SQ201410269637
【公開日】2014年9月10日 申請日期:2014年6月17日 優先權日:2014年6月17日
【發明者】劉波, 王懷民, 王天佐, 魯強, 肖哲鋒, 張天, 馬曉龍, 于洋 申請人:中國人民解放軍國防科學技術大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀