專利名稱:大規模非結構化p2p網絡中的資源搜索方法
技術領域:
本發明涉及計算機網絡中的資源搜索方法,尤其是支持大規模網絡中的高性能資源搜索方法。
背景技術:
P2P(peer-to-peer)網絡是近年來興起的一種網絡。在P2P網絡中,各節點在邏輯上是對等的,沒有客戶端和服務器之分,各個節點之間可以直接進行通信和交互。目前,P2P網絡在科學研究、電子商務、電子政務和軍事應用等重要領域都有著廣闊的應用。為了實現資源的有效共享和綜合利用,P2P網絡用戶需要對符合要求的資源進行搜索,資源搜索是P2P網絡的關鍵技術之一。
根據資源組織模式,P2P網絡通常可分為兩種結構化(Structured)P2P網絡和非結構化(Unstructured)P2P網絡。非結構化P2P網絡由于其簡單性和易用性,目前在Internet上得到了大量應用。本發明針對非結構化P2P網絡中的資源搜索技術。
最初的非結構化P2P網絡資源搜索技術(如泛洪、隨機漫步等)屬于“盲搜索”(blind search)方法,每一步的搜索方向具有很大的盲目性,導致當資源請求節點距離資源共享節點較遠時,無法迅速搜索到所需資源。因此,目前的資源搜索方法通常由各節點預先對資源信息進行發布、傳播和維護,在資源搜索過程中,資源搜索消息根據中間節點所維護的信息來選擇轉發的方向,進而發現資源。
目前非結構化P2P網絡中的資源搜索問題可以抽象為如何將大規模的資源信息進行發布和維護,以及如何在資源搜索過程中利用上述資源信息迅速發現資源。
在非結構化P2P網絡中,在各節點之間并沒有類似于DHT的P2P網絡拓撲結構,發布和維護資源信息需要消耗大量的存儲空間和網絡帶寬。因此,目前通常基于Bloom Filter(BF)技術,使用一個位向量通過較小的存儲開銷來概率地表示一個節點的所有元素。每個節點都維護一個“鄰居表”,保存相關鄰居節點的BF信息。在資源定位時,每個節點根據其“鄰居表”將資源定位消息轉發到最接近目標資源的鄰居節點上,直到最終到達目標節點。
評價資源搜索方法性能的重要參數包括搜索延遲、搜索開銷和維護開銷等。搜索延遲是指為滿足一次資源搜索請求,搜索消息在網絡中轉發的邏輯跳步數;搜索開銷是指為滿足一次資源搜索請求,網絡中產生的搜索消息總數;維護開銷是指每個節點維護本節點和鄰居節點資源信息所需的存儲開銷。為取得良好的實用性能,資源搜索方法應該兼顧多個方面的特性。但這幾個性能特性之間存在沖突,給P2P網絡的廣泛應用帶來困難。
發明內容
本發明所要解決的技術問題在于針對大規模非結構化P2P網絡中資源信息的維護開銷較小時,搜索延遲和搜索開銷較大的難題,提出了一種在資源信息維護開銷受限的條件下,具有低搜索延遲和低搜索開銷的資源搜索方法。
為了解決上述技術問題,本發明的技術方案為在資源信息的發布和維護過程中,各節點根據不同鄰居節點的要求對收到的BF信息在丟棄一定比例后進行轉發并保存在鄰居BF表中;在資源搜索過程中,各中間節點計算目標資源與鄰居BF表表項的相似度,并根據BF信息的分布情況,進行多個消息之間相互協同的并行搜索。具體包括(1)鄰居BF表每個度數為d的節點維護了一個d行c列的鄰居BF表T,表中每一個表項是一個Bloom Filter向量。表項Tij(1≤i≤d,1≤j<c)維護了通過第i個鄰居且從信息發布節點經過j步到達本節點的資源信息;表項Tic(1≤i≤d)則維護了通過第i個鄰居且從信息發布節點經過c步或c步以上到達本節點的資源信息。
(2)資源信息的發布和維護信息發布節點使用BF表示本地資源信息并發布。在資源信息的發布與傳播過程中,中間節點收到BF信息后,按照各鄰居節點的要求對信息進行丟棄后傳播。
(3)相似度設資源x對應的Bloom Filter位向量為U,鄰居BF表中TN,jA表項的Bloom Filter向量為V,使用Like(x,TN,jA)表示資源x與TN,jA表項的相似度Like(x,TN,jA)=Σi=1m(U[i]*V[i])/Σi=1mU[i].]]>(4)資源搜索資源請求節點發出k個資源搜索消息,在各中間節點,搜索消息根據相似度動態選擇下一步的搜索方向(到達目標資源的概率最大的鄰居節點)。而且,搜索消息之間周期性進行通信以獲得資源信息的分布情況,根據資源信息的分布情況動態地加強某些方向的搜索強度(發出多個搜索消息),同時通過減小其他搜索消息的數量來控制總的資源定位開銷。
與現有技術相比,本發明的優點在于1.本發明允許各節點向鄰居節點通告本節點所希望的丟棄比例。在資源信息的發布與傳播過程中,中間節點分別按照各鄰居節點相應的丟棄比例對信息進行丟棄并傳播,更好地適應了大規模P2P系統的異構、自治特點。
2.本發明創造性地提出各搜索消息之間進行聯系,交換各自以獲得的部分資源信息,從而大大降低了在距離資源共享節點較遠時的搜索錯誤概率,也就是提高了資源信息的有效傳播距離。容易證明,本發明中資源信息的有效傳播距離可達6至7步。
3.本發明以較低的維護開銷代價實現了高性能搜索。容易證明,在維護開銷和搜索開銷基本相同的情況下,與現有搜索方法比較,本發明的搜索延遲降低了一個數量級。
綜合上述幾個方面,本發明實現了在資源信息維護開銷受限的條件下具有低搜索延遲和低搜索開銷的資源搜索方法。
具體實施例方式
在本方法中,當節點A增加了新的資源時,它首先檢查本節點資源集合的Bloom Filter值。如果沒有發生變化,則不需任何更新過程;否則節點A通過比較新舊BF值的差異(按位異或),然后把該差異發送給鄰居節點B。節點B根據收到的更新消息更新本節點鄰居信息表中對應于節點A的表項,并且把更新信息轉發給除節點A之外的其他鄰居節點。其他鄰居節點的處理過程與節點B類似。當有一個新的節點F加入并成為節點D的鄰居時可以被看作上述過程的特例,此時的差異即是節點F全部資源集合的Bloom Filter值。為了降低資源信息傳播過程中的通信開銷,實際系統中的節點并不是從某鄰居節點收到更新消息時立刻傳播給其他鄰居節點,而是以批處理方式進行周期性傳播。
在本方法中,資源搜索消息的轉發過程如下。在中問節點A,首先計算當前節點鄰居信息表中各Bloom Filter向量與目標資源的相似度并得到局部最大相似度。如果局部最大相似度大于已知的全局最大相似度,則通告給資源請求節點,進而通過比較各局部最大相似度,獲得當前的全局最大相似度。在中間節點A向如下3類鄰居節點轉發資源搜索消息1)向非0局部最大相似度所對應的鄰居節點轉發資源搜索消息;2)向所有相似度大于或等于某閾值的鄰居節點轉發資源搜索消息,該閾值等于全局最大相似度乘以容錯因子α(α≤1);3)首先計算出局部最大相似度對應的向量所在的列號jmax,然后向所有滿足Like(x,TN,jA)>0,(1≤j<jmax)]]>的鄰居節點N轉發資源搜索消息。
為了進一步提高資源定位性能,在查找資源x的最初階段,如果在經過連續NH步搜索之后所有消息都沒有發現任何目標資源的共享信息,那么每個消息都將在第NH+1步派出NT個子消息以加強全局搜索。當全局最大相似度大于停止大規模搜索的相似度閾值時,將中止所有未發現任何信息的消息的搜索。
權利要求
1.一種大規模非結構化P2P網絡中的資源搜索方法,其特征在于在資源信息的發布和維護過程中,各節點根據不同鄰居節點的要求對收到的BF信息在丟棄一定比例后進行轉發并保存在鄰居BF表中;在資源搜索過程中,各中間節點計算目標資源與鄰居BF表表項的相似度,并根據BF信息的分布情況,進行多個消息之間相互協同的并行搜索,具體包括(1)鄰居BF表每個度數為d的節點維護了一個d行c列的鄰居BF表T,表中每一個表項是一個Bloom Filter向量,表項Tij(1≤i≤d,1≤j<c)維護了通過第i個鄰居且從信息發布節點經過j步到達本節點的資源信息;表項Tic(1≤i≤d)則維護了通過第i個鄰居且從信息發布節點經過c步或c步以上到達本節點的資源信息;(2)資源信息的發布和維護信息發布節點使用BF表示本地資源信息并發布,在資源信息的發布與傳播過程中,中間節點收到BF信息后,按照各鄰居節點的要求對信息進行丟棄后傳播;(3)相似度設資源x對應的Bloom Filter位向量為U,鄰居BF表中TN,jA表項的Bloom Filter向量為V,使用Like(x,TN,jA)表示資源x與TN,jA表項的相似度Like(x,TN,jA)=Σi=1m(u[i]*V[i])/Σi=1mU[i];]]>(4)資源搜索資源請求節點發出k個資源搜索消息,在各中間節點,搜索消息根據相似度動態選擇下一步的搜索方向,而且,搜索消息之間周期性進行通信以獲得資源信息的分布情況,根據資源信息的分布情況動態地加強某些方向的搜索強度,同時通過減小其他搜索消息的數量來控制總的資源定位開銷。
全文摘要
本發明涉及一種大規模非結構化P2P網絡中的資源搜索方法。該方法為在資源信息的發布和維護過程中,各節點根據不同鄰居節點的要求對收到的BF信息在丟棄一定比例后進行轉發并保存在鄰居BF表中;在資源搜索過程中,各中間節點計算目標資源與鄰居BF表表項的相似度,并根據BF信息的分布情況,進行多個消息之間相互協同的并行搜索。
文檔編號G06F17/30GK101087305SQ20071003530
公開日2007年12月12日 申請日期2007年7月9日 優先權日2007年7月9日
發明者張一鳴, 盧錫城, 李東升, 劉鋒 申請人:中國人民解放軍國防科學技術大學